- 相關(guān)推薦
PHP的語言結(jié)構(gòu)和函數(shù)的區(qū)別
使用PHP編程的最大好處是編程語言非常容易,系統(tǒng)功能庫非常豐富。那么大家知道PHP的語言結(jié)構(gòu)和函數(shù)的區(qū)別是什么呢?下面一起來看看!
php語言結(jié)構(gòu)函數(shù)
相信大家經(jīng)常看到對比一些PHP應(yīng)用中,說用isset() 替換 strlen(),isset比strlen執(zhí)行速度快等。
例子:
if ( isset($user) ) {
//do some thing
}
原因是isset是語言結(jié)構(gòu),而strlen是一個函數(shù)。還有echo 是個語言結(jié)構(gòu),不是個函數(shù)。
那什么是語言結(jié)構(gòu)呢?它和函數(shù)有什么不同嗎?
1、 什么是語言結(jié)構(gòu)和函數(shù)
語言結(jié)構(gòu):就是php語言的關(guān)鍵詞,語言語法的一部分;它不可以被用戶定義或者添加到語言擴展或者庫中;它可以有也可以沒有變量和返回值。
函數(shù):由代碼塊組成的,可以復(fù)用。從源碼的角度來說,也就是基于Zend引擎的基礎(chǔ)來實現(xiàn)的,ext拓展庫中的函數(shù)都是這樣實現(xiàn)的。
2、 語言結(jié)構(gòu)為什么比函數(shù)快原因是在PHP中,函數(shù)都要先被PHP解析器(Zend引擎)分解成語言結(jié)構(gòu),所以有此可見,函數(shù)比語言結(jié)構(gòu)多了一層解析器解析。這樣就能比較好的理解,什么語言結(jié)構(gòu)比函數(shù)快了。
3、 語言結(jié)構(gòu)和函數(shù)的不同 語言結(jié)構(gòu)比對應(yīng)功能的函數(shù)快語言結(jié)構(gòu)在錯誤處理上比較魯棒,由于是語言關(guān)鍵詞,所以不具備再處理的環(huán)節(jié)語言結(jié)構(gòu)不能在配置項(php.ini)中禁用,函數(shù)則可以。語言結(jié)構(gòu)不能被用做回調(diào)函數(shù)
4、 語言結(jié)構(gòu)列表
echo()
print()
die()
isset()
unset()
include(),注意,include_once()是函數(shù)
require(),注意,require_once()是函數(shù)
array()
list()
empty()
【PHP的語言結(jié)構(gòu)和函數(shù)的區(qū)別】相關(guān)文章:
PHP函數(shù)的區(qū)別及用法10-27
PHP函數(shù)die()與exit()的真正區(qū)別09-24
Java和PHP的區(qū)別09-09
PHP語言結(jié)構(gòu)語句11-09
PHP的語言結(jié)構(gòu)語句10-16
PHP中php://input和$-POST的區(qū)別08-26
php empty()和isset()的區(qū)別09-28
PHP時間和日期函數(shù)詳解10-17