2.1 empty,isset,is_null的區別
isset()用來檢測乙個變數是否已宣告且值不為null。換句話說,只能在變數值不是null時返回真值。
empty()用來檢測乙個變數是否為空,也就是說當有如下情況時返回真值:空字串,false,空陣列,null,0,' ',以及被unset()刪除後的變數。
is_null()用來判斷變數內容是否是null,即返回真值的條件僅為變數是null。所以可以看出is_null()是isset()的反函式,但在用法上有所區別。isset()可以應用到未知變數,但is_null()只能針對已宣告變數。
2.2 變數作用域
全域性變數:定義之後,在指令碼任何位置都可以訪問訪問。
區域性變數:定義在函式或類的方法中的變數,只能在其中訪問訪問。
這樣就有了一些規則,函式外部
無法訪問區域性變數,而函式內部
不允許訪問全域性變數。當新增global關鍵字後,在函式內部可訪問外部全域性變數。
php的「全域性」不是指整個**,而是應用於當前頁面,包括include或require的全部檔案。
補充:超級全域性陣列(super global array),由php內建。$globals,這裡又得區別一下global關鍵字和$globals陣列的區別了。
$globals是外部的全域性變數本身,global $var 是外部$var的同名引用或指標。
2.3 活用靜態變數
但如果需要我們需要在函式呼叫時儲存上次函式執行的結果,以便下次執行時使用,這時就是可以用靜態變數來實現。
宣告乙個靜態變數只需在變數前宣告關鍵字static,並初始化乙個值。原理是在php中,如果方法中使用了靜態變數,那麼它在銷毀之前只會初始化一次,所以結果可以累加,不再是每一次呼叫都進行初始化。當指令碼執行完畢退出時,靜態變數也會銷毀,這一點和全域性,區域性變數特性相同。
PHP小知識溫馨篇(4)
接下來的幾章圍繞的話題就屬於我個人正在 的了,畢竟不是頂級大牛,有誤或不妥的地方請大佬們的指正。本人在大學學習的時候已經不怎麼提倡面向過程了,教導我們模組化寫程式,分類,但那時候寫 也就純粹為了寫 能寫出乙個功能就算了事,之後也不會去碰,也沒有實際專案可碰。真正摸到實際專案還是在工作中,當然,作為乙...
PHP小知識收集
pecl 是 php extension community library 的縮寫,即php 擴充套件庫。pecl 可以看作pear 的乙個組成部分。str spit 將字串分隔成陣列 str abcded g print r str split str 輸出 array 0 a 1 b 2 c ...
php基礎小知識
echo 輸出無返回值,echo 比print 快,因為它沒有返回值。print 輸出有返回值,返回值為整數。printf 輸出有返回值,返回值為字串的長度。sprintf 有引數,將資料儲存在記憶體中,需要 echo 將字串輸出。使用 sum,即 使用 後跟識別符號名稱來定義乙個變數,php是弱型...