深入理解php中0,null,empty,空,false,字符串间的关系

发布时间:2020-07-01编辑:脚本学堂
本文介绍下,在php编程中,有关0,null,empty,空,false,字符串间的关系,有需要的朋友,参考下吧。

通过具体的例子,深入理解php中0,null,empty,空,false,字符串间的关系。

代码如下:
 

复制代码 代码示例:

<?php
//判断 0 和 '' 以及 empty null false的关系 start//

if('safdasefasefasf'==0){
 echo "该字符串转换为数字  等于 0 <br/>";
}//output:该字符串转换为数字 等于零。

 这是关键的一个例子

手册上有解释:该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。 

也就是说 '3asfdf'==3 ; 'adsfasdf'==0 相当要注意

$a=0;
if($a==''){
 echo "0  等于  '' <br/>";
}    //output:0 等于''
if(trim($a)==''){
 echo "trim(0)等于'' <br/>";
}    //no output

if($a===''){
 echo "0==='' <br/>";
}    //no output
if(empty($a)){
 echo "'' is empty <br/>";
}   //output:'' is empty
if(is_null($a)){
 echo "0 is null <br/>";
}   //no output
if(is_numeric($a)){
 echo "0 is numeric <br/>";
}   //output:0 is numeric
if(is_string($a)){
 echo "0 is string <br/>";
}   //no output
if(strval($a)==''){
 echo "转换成字符串的0 is '' <br/>";
}   //no output
// 判断 0 和 '' 以及 empty null false的关系 end  //

// 判断 '' 和 0 以及 empty null false的关系 start  //

$b = '';
if($b==0){
 echo "''  等于  0 <br/>";
}    //output:''  等于  0
if(!''){
 echo "'' 就是false <br/>";
}    //output:'' 就是false
if(!0){
 echo "0 就是false <br/>";
}    //output:0 就是false www.jb200.com
// 判断 '' 和 0 以及 empty null false的关系 end  //

echo "在判断空('')的时候一定要小心,0 也相当于'' ,0  和 '' 都相当于空字符和false,判断为空最好用===";
?>

输出结果:
0 等于 ” ” is empty 0 is numeric ” 等于 0 ” 就是false 0 就是false 在判断空(”)的时候一定要小心,0 也相当于” ,0 和 ” 都相当于空字符和false,判断为空最好用=== 只能这样解释:0 也相当于 ” ,0  和 ” 都相当于空字符和false。
在判断空(”)的时候一定要小心,0 也相当于 ” ,0  和 ” 都相当于空字符和false,判断为空最好用===;
 

echo         0 == null; echo '**<br/>' ;        //true
echo         0 === null; echo '**<br/>' ;       //false
echo (string)0 != null; echo '**<br/>' ;        //true
echo         0 != null; echo '**<br/>' ;        //false
echo         0 !== null; echo '**<br/>' ;       //true