關(guān)于PHP語言構(gòu)造器介紹
PHP里有echo、print、die、require等幾個(gè)特殊的關(guān)鍵字,雖然它們用起來像是函數(shù),但實(shí)際上更類似于if、while這樣控制語句,而不是一個(gè)函數(shù)。也就是說,當(dāng)解釋器遇到:
print 'Hello world';
這樣的一個(gè)表達(dá)式的時(shí)候,并不會(huì)把它轉(zhuǎn)換成函數(shù)調(diào)用,而是直接映射到一系列預(yù)先定義好的操作。使用語言構(gòu)成的時(shí)候可以加括號(hào),也可以不加括號(hào),但是使用函數(shù)的時(shí)候必須加括號(hào)。
你提到的“可變函數(shù)”,英文是”variable function”,變量函數(shù)的意思,翻譯成“可變函數(shù)”也有點(diǎn)扭曲原義,把variable(變量)這個(gè)名詞按形容詞(可變)的含義來翻譯了。PHP里的Variable function是指如果在一個(gè)變量后面加上一對(duì)括號(hào),那么解釋器會(huì)試圖尋找名字和這個(gè)變量的值一樣的一個(gè)函數(shù),如果找到了就執(zhí)行它。例如,有一個(gè)函數(shù)foo(),那么可以用下面這種方式調(diào)用這個(gè)函數(shù):
// 初始化一個(gè)字符串變量
$func = 'foo';
// 找到名字和這個(gè)字符串一樣的函數(shù),并且執(zhí)行它
$func();
所以,你提到的這句話的含義就是,使用變量函數(shù)這種方式來調(diào)用一個(gè)語言構(gòu)成是不允許的,例如下面這樣:
$func = 'print';
// 這樣做會(huì)產(chǎn)生異常,因?yàn)閜rint不是一個(gè)函數(shù),而是語言的構(gòu)成部分
$func('hello world');
執(zhí)行這段代碼,會(huì)產(chǎn)生一個(gè)異常,函數(shù)print沒有定義。
相關(guān)文章
php Xdebug 調(diào)試擴(kuò)展的安裝與使用.
下載xdebug擴(kuò)展的時(shí)候注意xdebug的版本與php版本相對(duì)應(yīng),不然出現(xiàn)不必要的麻煩!2010-03-03微信公眾平臺(tái)開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解
這篇文章主要介紹了微信公眾平臺(tái)開發(fā)之微信開發(fā)集成類的使用,結(jié)合圖文形式詳細(xì)分析了微信開發(fā)集成類的原理、功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-04-04PHP session_start()問題解疑(詳細(xì)介紹)
對(duì)于PHP的session功能,始終找不到合適的答案,尤其是一些錯(cuò)誤,還有一些沒有錯(cuò)誤的結(jié)果,最可怕的就是后者,一直為許多的初學(xué)者為難。就連有些老手,有時(shí)都被搞得莫名其妙2013-07-07兩種php去除二維數(shù)組的重復(fù)項(xiàng)方法
這篇文章主要介紹了兩種php去除二維數(shù)組的重復(fù)項(xiàng)方法,大家可以進(jìn)行比較看哪一種更適合自己,需要的朋友可以參考下2015-11-11