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()、is_null() 、empty()PHPNull
- PHP中empty、isset和is_null的使用區別PHPNull
- php中empty()、isset()、is_null()和變數本身的布林判斷區別PHPNull變數
- php中empty()、isset()、is_null()和變數本身的布林判斷區別(轉)PHPNull變數
- php中isset(),unnset(),empty()函式PHP函式
- ***PHP中empty()和isset()的區別PHP
- true || false && falseFalse
- php中0,'',null,false,true,FLASE,TREU,array()的相等恆等學習PHPNullFalse
- PHP isset()與empty()的使用區別詳解PHP
- PHP 由 empty 和 isset 面試題引起的思考PHP面試題
- php程式設計基本功之isset與emptyPHP程式設計
- PHP中isset()與empty()的使用區別詳解PHP
- php資料型別以及判斷isset或者empty使用PHP資料型別
- null >=0 ? true:falseNullFalse
- WPF ClipToBounds True or falseFalse
- 深入理解PHP之isset和array_key_exists對比PHP
- Python解惑:True與FalsePythonFalse
- Ruby中的true和falseFalse
- js判斷true和false一覽JSFalse
- ajax的true非同步或者false同步非同步False
- js中return、return true、return false的區別JSFalse
- 做「容量預估」可沒有true和falseFalse
- TIMED_STATISTICS 設定true 或 false 區別False
- onerror事件處理函式返回false或者true的作用Error事件函式False
- Hibernate 註解@Column(nullable = false) 和 @Column(unique=true)NullFalse
- Standby Server中的log_archive_start=false還是true ?ServerHiveFalse
- WebView#shouldOverrideUrlLoading究竟要返回true還是falseWebViewIDEFalse
- hive orc表'orc.create.index'='true'與'orc.create.index'='false'HiveIndexFalse
- peewee 的 BooleanField 是翻譯為 tinyint(1) 還是 enum('true','false')?BooleanFalse
- 表單驗證的3個函式ISSET()、empty()、is_numeric()的使用方法函式
- true--按了整數鍵, false--按了非整數鍵False
- PHP array_flip() array_merge() array+array的使用總結PHP
- PHP stdClass Object轉arrayPHPObject
- Java中“100=100”為true,而"1000=1000"為false?JavaFalse
- 『Java 語法基礎』3 * 0.1 == 0.3 將會返回什麼?true 還是 false?JavaFalse
- phpempty()和isset()PHP
- PHP用foreach來表達array_walk/array_filter/array_map/array_reducePHPFilter
- Python3中真真假假True、False、None等含義詳解PythonFalseNone