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;
}
}

时间: 2024-10-01 23:35:36

php中0与空 Null false的区别的相关文章

PHP教程 php中0与空 Null false的区别

PHP教程php中0与空 Null false的区别 原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean. 这一点可以用echo gettype('');和echo gettype(NULL);来打印看看!而===运算符是不单比较值,还有比较类型的,所以第三个为false!

(基础篇) 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==fal

关于JavaScript中0、空字符串、&#39;0&#39;是true还是false的总结

最近被问到关于js中空字符串是true还是false得问题,一时间没想起来,现在在chrome的console面板上输出代码测试一下. "" == false 结果是true   在js中空字符串与0相等  即空字符串等于false 0 == false  结果是tue   比较的时候 布尔类型的转换成number类型  false 为0  true 为1 “0” == fase 结果是true  字符串准成number Boolean("0") 结果是true 

PHP中0、空、null和false的总结

php中很多人还不懂php中 0 , '' , null 和 false 之间的区别,这些区别有时会影响到数据判断的正确性和安全性,给程序的测试运行造成很多麻烦.另外在面试题中也会遇到这些问题,如下: <?php $str1 = null; $str2 = false; echo $str1==$str2 ? '相等' : '不相等'; $str3 = ""; $str4 = 0; echo $str3==$str4 ? '相等' : '不相等'; $str5 = 0; $str

jquery 中cache为true与false 的区别

$.ajax({ type: "get", cache: false, url: url, success: function (msg) { } }); cache为true与false 的区别 true的话会读缓存,可能真的到服务器上. 假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取. false的话会在url后面加一个时间缀,让它跑到服务器获取结果. cache只有GET方式的时候有效

字符串中的各种“空” null 0

运算下段代码: <?php $str1 = null; $str2 = false; echo $str1==$str2 ? '相等' : '不相等';//相等 echo $str1===$str2? '相等' : '不相等';//不相等 $str3 =''; $str4 = 0; echo $str3==$str4 ? '相等' : '不相等';//相等 echo $str3===$str4 ? '相等' : '不相等';//不相等 $str7 = null; $str8 = 0; echo

asp.net,C#操作数据库DataTable关于空null的判断

double d=0;if(!Convert.IsDBNull(DataTable.Rows[i][m])){    string str=DataTable.Rows[i][m].ToString().Trim();    if(!String.IsNullOrEmpty(str))  //非空字符串         if(Double.TryParse(str,out d))  //d为正确的数字             d*=0.1; }//此时的d可以赋值给其它了 DBNull:DBNu

php中0,空,null和false之间区别

$a = 0; $b="0"; $c= ''; $d= null; $e = false; echo "5个变量-原始测试类型"; var_dump($a);//int 0 var_dump($b);//string '0' var_dump($c);//string '' var_dump($d);//null var_dump($e);//boolean false echo "<h4>empty测试</h4>"; v

js中 null, undefined, 0,空字符串,false,不全等比较

null == undefined // true null == ''  // false null == 0 // false null == false // false undefined == '' // false undefined == 0 // false undefined == false // false '' == 0   // true '' == false // true 0 == false // true undefined,null和 0, '', fals