首頁  >  文章  >  後端開發  >  php 中 0 == false,0 == false 會相等,而false != false的原因。

php 中 0 == false,0 == false 會相等,而false != false的原因。

WBOY
WBOY原創
2016-07-28 08:27:142300瀏覽

先查看一個特例:

var_dump(0 == 'false'), 傳回bool(true), php判斷0 等於任何字串;

var_dump(0==='false'), 傳回bool(false),全等包含型別和值才能相等。
var_dump(0 == false), 回傳bool(true),


產生上述結果的原因(翻譯自php官方文件):

1、針對bool型:

當你將bool型進行輸出或使用到語句中時,就會被轉換成數字,true變成1 ,false變成0

例如$a = true; var_dump($a+1),回傳(int)2; $a轉換成1,相加即為2;

一個bool型變數表達的是一個真值,而不是表達一個0 或1;布林型並不是一個標誌性的常數,他們是有值的。

2、string型:

php總是會自動嘗試將字串轉換成數字型。例如var_dump('abc'+3'),回傳int(3),

先'abc'轉換成數字0,相加變成3;


偵測變數的型別的方法:
1、var_dump($param) ,會傳回變數的型別和值。

2、使用is_int(), is_bool(),is_string();函數,傳回true和false,


常用的型別轉換方法。
變量$param

整型(int)$param

字符型(string)$param

布林型(bool)$param

轉換為布林型的另一種方法: $a = !5, $a為false ,$ a = !!5,$a 為true;


以上就介紹了 php 中 0 == false,0 == false 會相等,而false != false的原因。 ,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn