从品牌网站建设到网络营销策划,从策略到执行的一站式服务
发现如果code的值为null时,也能通过。小马虎导致大损失,
我们很多程序员可能对于0,null,空,false这几个的区别到底是什么可能不太明白,特别是在判断时会发现0,false都是没问题的,下面我们来看个实例。
例
代码如下复制代码
$test=0;
if($test==''){
echo '
在php中,0即为空'; //被输出
}
if($test===''){
echo '
在php中,0即为空'; //不被输出
}
if($test==NULL){
echo '
在php中,0即为空'; //被输出
}
if($test===NULL){
echo '
在php中,0即为空'; //不被输出
}
if($test==false){
echo '
在php中,0即为空'; //被输出
}
if($test===false){
echo '
在php中,0即为空'; //不被输出
}
?>
原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean。
这一点可以用echo gettype('');和echo gettype(NULL);来打印看看!而===运算符是不单比较值,还有比较类型的,所以第三个为false!
所以可以这样说===是等于下面的函数:
代码如下复制代码
function eq($v1, $v2) {
if($v1 == $v2 && gettype($v1) == gettype($v2)) {
return 1;
} else {
return 0;
}
}
所以空字符串(''),false,NULL和0是值相等而类型不一样!
注意:
NULL是一种特殊的类型.
两种情况下为NULL
1. $var = NULL;
2. $var;
3.""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
总结
从上面实例我们可以看得出null,0,false是假,而''是一个空字符串并不是空值。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图