您当前的位置: 首页 > 网站编程 > PHP教程 > php中0与空 Null false的区别

php中0与空 Null false的区别

作者:不详 来源:网络 发布时间: 2014-08-10 21:41 点击:
代码如下 ?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即为空'; //不被输

php中0与空 Null false的区别

  

  

  

  

  

  

  

  

  

  

  
代码如下


  <?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即为空'; //不被输出

  }

  ?>

  


  原因是在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是假,而''是一个空字符串并不是空值。
分享到:
本文"php中0与空 Null false的区别"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4