PHP語(yǔ)言快速學(xué)會(huì)之:[5] PHP 變量聲明
每種語(yǔ)言都離不開(kāi)變量,變量是存儲(chǔ)信息的容器。先打個(gè)比方:在代數(shù)中我們使用字母(比如 x)來(lái)保存值(比如 5)。從上面的表達(dá)式 z x y,我們能夠計(jì)算出 z 的值是 11。在 PHP 中,這三個(gè)字母
每種語(yǔ)言都離不開(kāi)變量,變量是存儲(chǔ)信息的容器。先打個(gè)比方:在代數(shù)中我們使用字母(比如 x)來(lái)保存值(比如 5)。從上面的表達(dá)式 z x y,我們能夠計(jì)算出 z 的值是 11。在 PHP 中,這三個(gè)字母被稱(chēng)為變量。類(lèi)似代數(shù) x5 y6 zx y。
PHP 變量
正如代數(shù),PHP 變量可用于保存值(x5)和表達(dá)式(zx y)。變量的名稱(chēng)可以很短(比如 x 和 y),也可以取更具描述性的名稱(chēng)(比如 carname、total_volume)。
PHP 變量規(guī)則:
- 變量以 $ 符號(hào)開(kāi)頭,其后是變量的名稱(chēng)。
- 變量名稱(chēng)必須以字母或下劃線開(kāi)頭。
- 變量名稱(chēng)不能以數(shù)字開(kāi)頭。
- 變量名稱(chēng)只能包含字母數(shù)字字符和下劃線(A-z、0-9以及_)。
- 變量名稱(chēng)對(duì)大小寫(xiě)敏感($y 和 $Y 是兩個(gè)不同的變量)。
創(chuàng)建 PHP 變量
PHP 沒(méi)有創(chuàng)建變量的命令。變量會(huì)在首次為其賦值時(shí)被創(chuàng)建。例如:
lt;?php $txt "Hello world!"; $x 5; $y 10.5; ?gt;
以上語(yǔ)句執(zhí)行后,變量 txt 會(huì)保存值 "Hello world!",變量 x 會(huì)保存值 5,變量 y 會(huì)保存值 10.5。
PHP 是一門(mén)類(lèi)型松散的語(yǔ)言
在上面的例子中,請(qǐng)注意我們不必告知 PHP 變量的數(shù)據(jù)類(lèi)型。PHP 根據(jù)它的值,自動(dòng)把變量轉(zhuǎn)換為正確的數(shù)據(jù)類(lèi)型。在諸如 C 和 Java 之類(lèi)的語(yǔ)言中,程序員必須在使用變量之前聲明它的名稱(chēng)和類(lèi)型。
PHP 變量作用域
在 PHP 中,可以在腳本的任意位置對(duì)變量進(jìn)行聲明。變量的作用域指的是變量能夠被引用/使用的那部分腳本代碼。PHP 有三種不同的變量作用域:local(局部)、global(全局)和 static(靜態(tài))。
Local 和 Global 作用域
函數(shù)之外聲明的變量擁有 Global 作用域,只能在函數(shù)以外進(jìn)行訪問(wèn)。函數(shù)內(nèi)部聲明的變量擁有 Local 作用域,只能在函數(shù)內(nèi)部進(jìn)行訪問(wèn)。下面的例子測(cè)試了帶有局部和全局作用域的變量:
lt;?php $x 5; // 全局作用域 function myFunction() { $y 10; // 局部作用域 echo "全局變量 x 在函數(shù)內(nèi)可訪問(wèn),值為:" . $GLOBALS['x']; echo "局部變量 y 在函數(shù)外不可訪問(wèn),值為:" . $y; } myFunction(); ?gt;
PHP global 關(guān)鍵詞
global 關(guān)鍵詞用于訪問(wèn)函數(shù)內(nèi)的全局變量。要做到這一點(diǎn),請(qǐng)?jiān)谧兞壳懊媸褂?global 關(guān)鍵詞:
lt;?php $x 5; // 全局變量 function myFunction() { global $x; echo "全局變量 x 的值為:" . $x; } myFunction(); ?gt;
PHP static 關(guān)鍵詞
通常,當(dāng)函數(shù)完成/執(zhí)行后,會(huì)刪除所有變量。不過(guò),有時(shí)我需要不刪除某個(gè)局部變量。實(shí)現(xiàn)這一點(diǎn)需要更進(jìn)一步的工作。要完成這一點(diǎn),請(qǐng)?jiān)谀状温暶髯兞繒r(shí)使用 static 關(guān)鍵詞:
lt;?php function myFunction() { static $x 0; echo $x; $x ; } myFunction(); // 輸出:0 myFunction(); // 輸出:1 myFunction(); // 輸出:2 ?gt;