1.普通變量$a = "hello";2.可變變量(使用兩個(gè)美元符號(hào)($))$$a = "world";兩個(gè)變量都被定義了:$a 的內(nèi)容是“hello”并且 $hello 的內(nèi)容是“world”。
因此,可以表述為:echo "$a ${$a}";或者 echo "$a $hello";它們都會(huì)輸出:hello world。
要將可變變量用于數(shù)組,必須解決一個(gè)模棱兩可的問題。這就是當(dāng)寫下 $$a[1] 時(shí),解析器需要知道是想要 $a[1] 作為一個(gè)變量呢,還是想要 $$a 作為一個(gè)變量并取出該變量中索引為 [1] 的值。解決此問題的語(yǔ)法是,對(duì)第一種情況用 ${$a[1]},對(duì)第二種情況用 ${$a}[1]。
3.靜態(tài)變量 在函數(shù)內(nèi)部static $a = 0;
注意:聲明中用表達(dá)式的結(jié)果對(duì)其賦值會(huì)導(dǎo)致解析錯(cuò)誤如static $a =3+3;(error)
靜態(tài)變量?jī)H在局部函數(shù)域中存在(函數(shù)內(nèi)部),函數(shù)執(zhí)行完之后,變量值不會(huì)丟失,可用于遞歸調(diào)用。
4.全局變量在函數(shù)體內(nèi)定義的global變量,函數(shù)體外可以使用,在函數(shù)體外定義的global變量不能在函數(shù)體內(nèi)使用,在全局范圍內(nèi)訪問變量可以用特殊的 PHP 自定義 $GLOBALS 數(shù)組:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一個(gè)函數(shù)域內(nèi)用 global 語(yǔ)句導(dǎo)入的一個(gè)真正的全局變量實(shí)際上是建立了一個(gè)到全局變量的引用如global $obj;
5.給變量賦值:傳地址賦值(簡(jiǎn)單引用): $bar = &$foo; //加&符號(hào)到將要賦值的變量前。
改動(dòng)新的變量將影響到原始變量,這種賦值操作更加快速
注意:只有命名變量才可以傳地址賦值。舉例如下:
$bar = &$a;
$bar = &$foo;
改變$bar的值只能改變變量foo的值,而不改變a的值(引用改變了)
本文版權(quán)歸黑馬程序員
php培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員php培訓(xùn)學(xué)院