网站地图    收藏   

主页 > 后端 > PHP语言 >

PHP NULL false 0 empty比较_自学php网

来源:自学PHP网    时间:2014-12-04 21:50 作者: 阅读:

[导读] PHP语言缺少传统编程语言的数据类型概念,至少是属于弱数据类型语言,当前变量的数据类型完全决定于运算场景,一切都按PHP默认转换逻辑进行类型转换,比如3-2就会自动把字符串转...

PHP语言缺少传统编程语言的数据类型概念,至少是属于弱数据类型语言,当前变量的数据类型完全决定于运算场景,一切都按PHP默认转换逻辑进行类型转换,比如"3"-2就会自动把字符串转换为整数并计算,得到结果1,但是如果把"3P"-2,那么还是等于1,"3.2P"-2,输出1.2,P都被丢弃,再看"P3"-2 ,则输出结果为-2,说明转换只考虑前面的数字部分。这些转换逻辑从设计上本身就有很大问题,但从PHP语言应用定位上来看,似乎却又是个优点,为了确保对访客和谐而忽略后台规则,以保证最大的兼容稳定性。

本文再来看看常用NULL, false, 0 empty, is_null用法,看完本文输出结果,不得不佩服PHP设计师们的想象力,原来编程语言还可以如此设计。

$strArr=array(NULL,"",'',0,0.0,'0',false,array(),$novar);
$disArr=array("NULL","\"\"","''","0","0.0","'0'","false","array()",'$novar');

foreach($strArr as $k=>$v) {
    if($v=='')
        echo $disArr[$k]."=''<br/>";
    else
        echo $disArr[$k]."!=''<br/>";
    if($v==0)
        echo $disArr[$k]."=0<br/>";
    else
        echo $disArr[$k]."!=0<br/>";
    if(empty($v))
        echo $disArr[$k]." is empty()<br/>";
    else
        echo $disArr[$k]." not empty()<br/>";
    if(is_null($v))
        echo $disArr[$k]." is is_null()<br/>";
    else
        echo $disArr[$k]." not is_null()<br/>";
    if($v==false)
        echo $disArr[$k]."=false<br/>";
    else
        echo $disArr[$k]."!=false<br/>";
    echo '--------<br/>';
}

输出结果如下:

NULL=''
NULL=0
NULL is empty()
NULL is is_null()
NULL=false
--------
""=''
""=0
"" is empty()
"" not is_null()
""=false
--------
''=''
''=0
'' is empty()
'' not is_null()
''=false
--------
0=''
0=0
0 is empty()
0 not is_null()
0=false
--------
0.0=''
0.0=0
0.0 is empty()
0.0 not is_null()
0.0=false
--------
'0'!=''
'0'=0
'0' is empty()
'0' not is_null()
'0'=false
--------
false=''
false=0
false is empty()
false not is_null()
false=false
--------
array()!=''
array()!=0
array() is empty()
array() not is_null()
array()=false
--------
$novar=''
$novar=0
$novar is empty()
$novar is is_null()
$novar=false
--------

看到输出,0.0=false,''=0,...这或许就是PHP的规则。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论