第一章 快速入門
1.字符串的連接
- 用一個(gè)字符串的內(nèi)容來代替一個(gè)變量的操作就是插值(interpolation)山卦。
- 雙引號(hào)("")中毒费,變量名稱將被變量值所替代炸卑;而在單引號(hào)('')中减拭,變量名稱料睛,或者任何其他文本都會(huì)不僅修改而發(fā)送給瀏覽器巨坊。
2.變量于文本
- 變量是表示數(shù)據(jù)的符號(hào)撬槽。字符串是數(shù)據(jù)本身。
- 第三種制定字符串的方法:heredoc語法(<<<)趾撵,通過指定一個(gè)用來結(jié)束字符串的結(jié)束標(biāo)記侄柔,Heredoc語法允許指定長(zhǎng)字符串共啃。
3.理解標(biāo)識(shí)符
- 標(biāo)識(shí)符是變量的名稱。
- 標(biāo)識(shí)符可以是任何長(zhǎng)度暂题,而且可以由任何字母移剪、數(shù)字、下劃線組成薪者;
- 標(biāo)識(shí)符不能以數(shù)字開始纵苛;
- 在PHP中,標(biāo)識(shí)符是區(qū)分大小寫的言津;
- 一個(gè)變量名稱可以與一個(gè)函數(shù)名稱相同;
- 不能創(chuàng)建一個(gè)具有與已有函數(shù)同名的函數(shù)攻人。
4.PHP的數(shù)據(jù)類型
- 特定的內(nèi)置函數(shù)(例如數(shù)據(jù)庫函數(shù))將返回resource類型的變量。它們都代表外部資源(例如數(shù)據(jù)庫連接)
- 基本上不能直接操作一個(gè)resource變量悬槽,但是通常它們都將被函數(shù)返回怀吻,而且必須具有作為參數(shù)傳遞給其他函數(shù)。
5.類型轉(zhuǎn)換
- 使用類型轉(zhuǎn)換初婆,可以將一個(gè)變量活值轉(zhuǎn)換成另一個(gè)類型蓬坡。
- 只需在希望進(jìn)行類型轉(zhuǎn)換的變量之前的圓括號(hào)中插入需要轉(zhuǎn)換的臨時(shí)數(shù)據(jù)類型即可。
$totalqty=0; $totalamount=(float)$totalqty;
- 解釋:取出保存在$totalqty的值磅叛,并將其解釋成一個(gè)浮點(diǎn)類型屑咳,并且將其保存在$totalamonut中。
6.聲明和使用常量
- 一個(gè)常量可以保存一個(gè)值弊琴,例如一個(gè)變量值兆龙,但是常量值一旦被設(shè)定后,在腳本的其他地方就不能再更改访雪。
- 用define函數(shù)定義常量详瑞。
- 例如:
define('OILPRICE',10);
- 例如:
- 常量名稱都是由大寫字母組成的
- 常量和變量之間的一個(gè)重要不同點(diǎn)在于引用一個(gè)常量的時(shí)候,它前面并沒有$符號(hào)臣缀。
- 常量可以自己定義,PHP還預(yù)定義了許多常量泻帮【茫可以通過后phpinfo()函數(shù)來了解。
- 常量只可以保存布爾值(bool)锣杂、整數(shù)(int)脂倦、浮點(diǎn)數(shù)(float)或字符串(string)數(shù)據(jù)。
7.理解變量的作用域
- 作用域是指在一個(gè)腳本中某個(gè)變量可以使用或可見的范圍元莫。
- PHP有6項(xiàng)作用域規(guī)則
- 內(nèi)置超級(jí)全局變量可以在腳本的任何地方使用和可見赖阻;
- 常量,一旦被聲明踱蠢,將可以在全局可見火欧;也就是說棋电,它們可以在函數(shù)內(nèi)外使用;
- 在一個(gè)腳本中聲明的全局變量在整個(gè)腳本中是可見的苇侵,但不是在函數(shù)內(nèi)部赶盔;
- 函數(shù)內(nèi)部使用的變量聲明為全局變量時(shí),其名稱要與全局變量名稱一致榆浓;
- 在函數(shù)內(nèi)部創(chuàng)建冰杯聲明為靜態(tài)的變量無法再函數(shù)外部可見于未,但是可以在函數(shù)的多次執(zhí)行過程中保持該值;
- 在函數(shù)內(nèi)部創(chuàng)建的變量對(duì)函數(shù)來說是本地的陡鹃,而當(dāng)函數(shù)終止時(shí)烘浦,該變量也就不存在了。
- PHP有6項(xiàng)作用域規(guī)則
8.前置遞增遞減(++$a和- -$a)和后置遞增遞減運(yùn)算符($a++和$a- -)
- 所有遞增操作符都有兩個(gè)功能:
- 將變量增加1萍鲸;
- 增加后的值賦給原變量闷叉。
- ++$a前置遞增
- 運(yùn)行結(jié)果是:首先將變量$a加1,再將加1后的結(jié)果復(fù)制給原變量$a猿推。
-
$a=4;
echo ++$a;
echo $a;
-屏幕顯示為:2 2
- $a++后置遞增
- 運(yùn)行結(jié)果是$a的值被返回并顯示在屏幕上片习,然后,$a再加1蹬叭。
-
$a=4;
echo $a++;
echo $a;
-
- 屏幕顯示為:1 2
- 運(yùn)行結(jié)果是$a的值被返回并顯示在屏幕上片习,然后,$a再加1蹬叭。
9.引用操作符(&)
- 通常來說(既在不使用&符號(hào)時(shí))藕咏,在將一個(gè)變量的值(a)賦給另一個(gè)變量(b)的時(shí)候,先產(chǎn)生原變量的一個(gè)副本秽五,然后再將他保存在內(nèi)存的其他地方孽查。原變量(a)改變時(shí),變量(b)并不跟著一起改變坦喘。
-
$a=4;
$b=$a;
$a=6;
echo "a=".$a."<br />b=".$b;
- 屏幕顯示為:
-
- 如果使用了引用操作符&則$b也會(huì)跟著$a進(jìn)行更改盲再。
-
$a=4;
$b=&$a;
echo "a=".$a."<br />b=".$b;
- 屏幕顯示為:
-
- 所以引用操作符&就像一個(gè)別名,而不是一個(gè)指針瓣铣。$a和$b都指向了內(nèi)存中相同的地址答朋。
- 可以通過重置(unset($X))來改變所指向的地址。
unset($a);
- 該重置不會(huì)改變$b的值棠笑,但是可以破壞$a和值7保存在內(nèi)存中的連接梦碗。
- 例如:
-
$a=4;
$b=&$a;
unset($a);
echo "a=".$a."<br />b=".$b;
-
屏幕會(huì)顯示為:
- notice的意思是未定義的變量a在第6行。
-
10.比較操作符
- 恒等操作符(===)三個(gè)等于號(hào)蓖救,只有當(dāng)恒等操作符兩邊的操作數(shù)相等并且具有相同的數(shù)據(jù)類型洪规,其返回值才為true。
11.操作符優(yōu)先級(jí)
- 普通的圓括號(hào)是優(yōu)先級(jí)最高的操作符循捺。它的作用就是提高圓括號(hào)內(nèi)部操作符的優(yōu)先級(jí)斩例;這樣在需要的時(shí)候,就可以避開操作符的優(yōu)先級(jí)法則从橘。
- 可以在一個(gè)表達(dá)式中使用任意個(gè)圓括號(hào)念赶,最里層圓括號(hào)的表達(dá)式將最先計(jì)算础钠。
- 優(yōu)先級(jí)從高到低
優(yōu)先級(jí)從高到低
12.關(guān)于print和echo
- print語言機(jī)構(gòu)等價(jià)于echo語句。這兩個(gè)結(jié)構(gòu)都將生成輸出晶乔;
- print和echo都不是真正的函數(shù)珍坊,但是都可以用帶有參數(shù)的函數(shù)形式進(jìn)行調(diào)用;
- print和echo都可以當(dāng)作一個(gè)操作符:只要將要顯示的字符串放置在echo或print關(guān)鍵字之后正罢;
- 以函數(shù)形式調(diào)用print將使其返回一個(gè)值(1)阵漏;
- print的速度要比echo慢。
13.關(guān)于gettype()和settype()
要使用gettype()函數(shù)翻具,必須先給它傳遞一個(gè)變量履怯。它將確定變量的類型并返回一個(gè)包含類型名稱的字符串;如果變量類型不是標(biāo)準(zhǔn)類型之一裆泳,該函數(shù)就會(huì)返回"unknown type"叹洲。
要使用settype()函數(shù),必須先給它傳遞一個(gè)要被改變類型的變量工禾,以及一個(gè)包含了上述類型列表中某個(gè)類型的字符串运提。
$foo="5bar"; //string
$bar=true; //bool
settype($foo,"integer"); //integer
settype($bar,"string"); //string
echo gettype($foo)."<br />".gettype($bar);
-
屏幕顯示:
14.PHP的特定類型測(cè)試函數(shù)
- is_array():檢查變量是否是數(shù)組;
- is_double()闻葵、is_float()民泵、is_real():檢查變量是否是浮點(diǎn)數(shù);
- is_long()槽畔、is_int()栈妆、is_integer():檢查變量是否是整數(shù);
- is_string():檢查變量是否是字符型;
- is_bool():檢查變量是否是布爾型厢钧;
- is_object():檢查變量是否是一個(gè)對(duì)象鳞尔;
- is_resource():檢查變量是否是一個(gè)資源;
- is_null():檢查變量是否為null早直;
- is_scalar():檢查變量是否是標(biāo)量寥假,即一個(gè)整數(shù)、布爾值霞扬、字符串或浮點(diǎn)數(shù)昧旨;
- is_numeric():檢查該變量是否是任何類型的數(shù)字或數(shù)字字符串;
- is_callable():檢查變量是否是有效的函數(shù)名稱祥得。
15.測(cè)試變量狀態(tài)
- isset()函數(shù):該函數(shù)需要一個(gè)變量名稱作為參數(shù),如果這個(gè)變量存在蒋得,則返回true级及,否則返回false;
bool isset(mixed var);[;mixed var[,...]])
- unset()函數(shù):該函數(shù)將銷毀一個(gè)傳進(jìn)來的變量额衙。
-
void unset(mixed var);[;mixed var[,...]])
-empty()函數(shù):該函數(shù)可以用來檢查一個(gè)變量是否存在饮焦,以及它的值是否為非空或非0怕吴,相應(yīng)的返回值為true或false。 bool empty(mixed var);
-
16.while循環(huán)
- while循環(huán)語句只要其條件為真县踢,就會(huì)不斷重復(fù)執(zhí)行代碼塊转绷。
- 當(dāng)不知道所需的重復(fù)次數(shù)時(shí),可以使用while循環(huán)語句硼啤。如果要求一個(gè)固定次數(shù)的重復(fù)议经,可以考慮使用for循環(huán)語句。
17.for循環(huán)
- while循環(huán)和for循環(huán)是等價(jià)的谴返,區(qū)別只是在于for循環(huán)更加緊湊煞肾。
- foreach循環(huán)語句是專門用于數(shù)組的使用。
18.do...while循環(huán)
- do....whild循環(huán)與while循環(huán)不同嗓袱,因?yàn)樗臏y(cè)試條件放在整個(gè)語句塊的最后籍救;也就意味著do....while循環(huán)中的語句或語句塊至少會(huì)執(zhí)行一次。
19.關(guān)于跳出
- 如果希望終止一個(gè)循環(huán)渠抹,可以使用break語句蝙昙。使用了break語句后,腳本就會(huì)從循環(huán)體后面的第一條語句處開始執(zhí)行梧却。
- 如果希望跳到下一次循環(huán)奇颠,可以使用continue語句。
- 如果希望結(jié)束整個(gè)PHP腳本的執(zhí)行篮幢,可以使用exit語句大刊。