A. php中"0"是false嗎
是的, 具體可以參考下面代碼執行的結果
var_mp(0==false);
var_mp('0'==false);
var_mp(''==false);
var_mp('null'==false);
var_mp(null==false);
執行的結果是:
boolean true
boolean true
boolean true
boolean false
boolean true
B. php中0,空,null和false的區別
0 ,在所有計算機語言中,基本非0為真,0為假。0 == false null 是空 這個很有意思。因為我也不知它是什麼類型的,但 null ==false是必然的。在if判斷是邏輯就是這樣 empty 這個也是很有意思是,因為這會出現很多陷阱。首先,empty對於一切未聲明定義的變數,直接返回true,對於已聲明的變數,如果是非空字元串 或 非0 返回false; 但是0的時候,它卻是返回真的。這個是出於什麼考慮我也不清楚。但它一直出乎我的邏輯。 總得關系就是 0==false ==null (empty是一個方法 ,所以不能跟變數作比較的。)
C. 在php自動類型轉換為布爾型時,哪些會被轉換為false
int : 0;
float:0.0;
string:'0',"", false , 但是'0.0'、" "帶空格的空字元串嗎,轉換都是true
其他:false,null以及空數組都是false,只要是資源(resource)、對象(object)都是true
D. PHP 0 和null的區別
NULL和0是值相等而類型不一樣!
注意:
NULL是一種特殊的類型.
兩種情況下為NULL
1. $var = NULL;
2. $var;
3.0、"0"、NULL以及沒有任何屬性的對象都將被認為是空的。
舉例如下:
<?php
$test=0;
if($test==''){
echo'<br/>在php中,0即為空';//被輸出
}
if($test===''){
echo'<br/>在php中,0即為空';//不被輸出
}
if($test==NULL){
echo'<br/>在php中,0即為空';//被輸出
}
if($test===NULL){
echo'<br/>在php中,0即為空';//不被輸出
}
if($test==false){
echo'<br/>在php中,0即為空';//被輸出
}
if($test===false){
echo'<br/>在php中,0即為空';//不被輸出
}
?>
E. php switch 為什麼 bool TRUE 被判斷為了 int 1,NULL 成了 string '',而 bool FALSE 正常
php是弱類型語言,true是==1的,false是==0的,但是還有一個符號是===恆等於,會加上類型的判斷,就不會相等了,兩個==的相等,會先將類型進行轉換,再判斷。你把你使用的例子給貼出來吧,不太明白你對哪裡有疑問。
F. php中explode函數什麼時候輸出false
$str="aa,bb,cc";
$arr=explode("",$str);
//print_r($arr);
var_mp($arr);//列印 boolean false
G. 為什麼php的false與NULL是等價的
用===