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是等价的
用===