php true false isset empty is_null array()
php裡面的true和false,以及isset、empty、is_null比較容易讓人模糊,寫一下,記錄我的理解。
switch(true){
case 1:
echo '我是1';
case ['']:
echo '我是陣列';
case true:
echo '我是true';
case 'true':
echo :'string true';
default:
echo ' over' ;
}
程式碼執行結果會是 全都被輸出。
php變數和bool型別的資料做比較的時候,將會被轉換成true 或者false
那麼0、false、null或者unset之後的變數將會被系統認為是false。
除此之外都將會被認為是true。
注意 以上程式碼中:[''],其實是建立一個匿名陣列,和bool進行比較的時候,將會被系統認為是true。
false在網頁中是不被列印的。
isset()
判斷變數是否已經被定義以及判斷該變數是否被設定(也就是賦值)。
當變數不存在或者是當變數被賦值為null,或者壓根沒有被賦值的情況下,返回false。
其餘情況返回true,當然外部無法訪問類內部private修飾的變數。
''、0、false、array()也被認為是已經設定。
empty()
判斷變數是否為空。
0、false、null、array()、unset()、''、沒有初始化這些情況下,empty函式都將返回true也就是1。
其餘情況返回false。
也就是 只要該變數等於false,empty就將返回true。
is_null()
判斷變數是否是空。
只有在變數未初始化就使用以及初始化為null以及變數根本不存在的情況下,才會返回true。
總結
php遵循c語言的變數儲存規則。
如果我們認為php是一個只有true和false的世界:
- 0->false
- false->false
- ''->false
- array()->false
- null->false
- unset()->false
- 變數未初始化就呼叫->false
- 1->true
- 其餘情況->true
empty認為一切是false的玩意,都是空,都會給呼叫者返回true。
is_null認為未初始化的變數,不存在的變數,值為null的變數 都是true。
isset認為當變數不存在或者是當變數被賦值為null,或者壓根沒有被賦值,以及被unset之後的變數,屬於未被設定的範疇,將返回0,false。
相關文章
- PHP isset()與empty()的使用區別詳解PHP
- true || false && falseFalse
- PHP 由 empty 和 isset 面試題引起的思考PHP面試題
- WPF ClipToBounds True or falseFalse
- 深入理解PHP之isset和array_key_exists對比PHP
- Python解惑:True與FalsePythonFalse
- Ruby中的true和falseFalse
- js判斷true和false一覽JSFalse
- 做「容量預估」可沒有true和falseFalse
- js中return、return true、return false的區別JSFalse
- Java中“100=100”為true,而"1000=1000"為false?JavaFalse
- peewee 的 BooleanField 是翻譯為 tinyint(1) 還是 enum('true','false')?BooleanFalse
- hive orc表'orc.create.index'='true'與'orc.create.index'='false'HiveIndexFalse
- Java-學習日記(100 == 100為true,1000 == 1000卻為false?)JavaFalse
- PHP stdClass Object轉arrayPHPObject
- 『Java 語法基礎』3 * 0.1 == 0.3 將會返回什麼?true 還是 false?JavaFalse
- Python3中真真假假True、False、None等含義詳解PythonFalseNone
- PHP用foreach來表達array_walk/array_filter/array_map/array_reducePHPFilter
- a-numeric-string-as-array-key-in-PHPPHP
- PHP array_search 和 in_array 函式效率問題PHP函式
- 7.82 EMPTY_BLOB, EMPTY_CLOB
- auto-install-peers=true strict-peer-dependencies=false 這兩個配置的作用是什麼False
- mysql資料庫中tinyint(1) 儲存數字時候取值為True、False解釋MySql資料庫False
- 慎用PHP的unset、array_unique方法PHP
- php array_filter() 函式的用法PHPFilter函式
- PHP陣列函式-array_mapPHP陣列函式
- CSS E:emptyCSS
- php中array_walk函式是什麼?PHP函式
- JavaScript return falseJavaScriptFalse
- PHP中把stdClass Object轉array的幾個方法PHPObject
- PHP-將變數輸出成 array 結構PHP變數
- php內建函式分析之array_fill_keys()PHP函式
- PHP中array_chunk() 函式如何分割陣列PHP函式陣列
- PHP原始碼分析-函式array_merge的”BUG”PHP原始碼函式
- 關於 isset 和邏輯運算子的使用
- C++ Empty Class OptimizationC++
- PathVariable annotation was empty on param 0
- PHP array_column 引發的一個小問題PHP
- PHP程式碼審計01之in_array()函式缺陷PHP函式