php中0,'',null,false,true,FLASE,TREU,array()的相等恒等学习
2011-07-26 23:22
411 查看
"Null" means "nothing". The var has not been initialized.
"False" means "not true in a boolean context". Used to explicitely show you are dealing with logical issues.
0 is an int. Nothing to do with the rest above, used for mathematics.
Now, what is tricky, it's that in dynamic languages like PHP, all of them have a value in a boolean context, which is "False".
If you test it with "==", it's testing the boolean value, so you will get equality. If you test it with "===", it will test the type, and you will get inequality.
//比较值 '' NULL 0 false true FALSE TRUE arrau()
//相等判断
//'' == NULL == 0 == false=="0" (相等)
//array() = 0 == NULL == false="0" (相等)
//array() <> '' (不相等)
//恒等判断
//任何两个数比较都不恒等
//var_dump(false == FALSE); //bool(true)
//var_dump(false === FALSE); //bool(true)
//var_dump(true == TRUE); //bool(true)
//var_dump(true === TRUE); //bool(true)
//var_dump('' == NULL); //bool(true)
//var_dump('' === NULL); //bool(false)
//var_dump('' == 0); //bool(true)
//var_dump('' === 0); //bool(false)
//var_dump('' == false); //bool(true)
//var_dump('' === false); //bool(false)
//var_dump('' == true); //bool(false)
//var_dump('' === true); //bool(false)
//var_dump(null == 0); //bool(true)
//var_dump(null === 0); //bool(false)
//var_dump(null == false); //bool(true)
//var_dump(null === false); //bool(false)
//var_dump(null == true); //bool(false)
//var_dump(null === true); //bool(false)
//var_dump(0 == false); //bool(true)
//var_dump(0 === false); //bool(false)
//var_dump(0 == true); //bool(false)
//var_dump(0 === true); //bool(false)
//对true的一些判断
//var_dump('1' == true); //bool(true)
//var_dump('1' === true); //bool(false)
//var_dump(1 == true); //bool(true)
//var_dump(1 === true); //bool(false)
//var_dump(array() == true); //bool(false)
//var_dump(array() === true); //bool(false)
//array()比较
//var_dump(array() == ''); //bool(false)
//var_dump(array() === ''); //bool(false)
//var_dump(array() == NULL); //bool(true)
//var_dump(array() === NULL); //bool(false)
//var_dump(array() == 0); //bool(false)
//var_dump(array() === 0); //bool(false)
//var_dump(array() == false); //bool(true)
//var_dump(array() === false); //bool(false)
//var_dump(array() == true); //bool(false)
//var_dump(array() === true); //bool(false)
//恒等比较
//var_dump(0 === '0'); //bool(false)
//var_dump(0 === 00); //bool(true)
//var_dump(00 === intval('0')); //bool(true)
"False" means "not true in a boolean context". Used to explicitely show you are dealing with logical issues.
0 is an int. Nothing to do with the rest above, used for mathematics.
Now, what is tricky, it's that in dynamic languages like PHP, all of them have a value in a boolean context, which is "False".
If you test it with "==", it's testing the boolean value, so you will get equality. If you test it with "===", it will test the type, and you will get inequality.
//比较值 '' NULL 0 false true FALSE TRUE arrau()
//相等判断
//'' == NULL == 0 == false=="0" (相等)
//array() = 0 == NULL == false="0" (相等)
//array() <> '' (不相等)
//恒等判断
//任何两个数比较都不恒等
//var_dump(false == FALSE); //bool(true)
//var_dump(false === FALSE); //bool(true)
//var_dump(true == TRUE); //bool(true)
//var_dump(true === TRUE); //bool(true)
//var_dump('' == NULL); //bool(true)
//var_dump('' === NULL); //bool(false)
//var_dump('' == 0); //bool(true)
//var_dump('' === 0); //bool(false)
//var_dump('' == false); //bool(true)
//var_dump('' === false); //bool(false)
//var_dump('' == true); //bool(false)
//var_dump('' === true); //bool(false)
//var_dump(null == 0); //bool(true)
//var_dump(null === 0); //bool(false)
//var_dump(null == false); //bool(true)
//var_dump(null === false); //bool(false)
//var_dump(null == true); //bool(false)
//var_dump(null === true); //bool(false)
//var_dump(0 == false); //bool(true)
//var_dump(0 === false); //bool(false)
//var_dump(0 == true); //bool(false)
//var_dump(0 === true); //bool(false)
//对true的一些判断
//var_dump('1' == true); //bool(true)
//var_dump('1' === true); //bool(false)
//var_dump(1 == true); //bool(true)
//var_dump(1 === true); //bool(false)
//var_dump(array() == true); //bool(false)
//var_dump(array() === true); //bool(false)
//array()比较
//var_dump(array() == ''); //bool(false)
//var_dump(array() === ''); //bool(false)
//var_dump(array() == NULL); //bool(true)
//var_dump(array() === NULL); //bool(false)
//var_dump(array() == 0); //bool(false)
//var_dump(array() === 0); //bool(false)
//var_dump(array() == false); //bool(true)
//var_dump(array() === false); //bool(false)
//var_dump(array() == true); //bool(false)
//var_dump(array() === true); //bool(false)
//恒等比较
//var_dump(0 === '0'); //bool(false)
//var_dump(0 === 00); //bool(true)
//var_dump(00 === intval('0')); //bool(true)
相关文章推荐
- php中0,'',null,false,true,FLASE,TREU,array()的相等恒等学习
- php中0,'',null,false,true,FLASE,TREU,array()的相等恒等学习
- php中0,'',null,false,true,FLASE,TREU,array()的相等恒等学习
- php中0,'',null,false,true,FLASE,TREU,array()的相等恒等学习
- php踩过的那些坑(4) false,NULL,0,''详解
- php中0,null,empty,空即''与false的关系
- php null o false ''
- php判断0,null,false,''类似这些值时候必须用全等
- 原:PHP数组函数研究:is_null,is_object,is_array,is_string,is_resource等
- php中0,null,empty,空,false,字符串关系详解
- PHP中的0,‘’,null和false原来是一样的?!
- php手册-关于true和false
- Unrecognized token 'ename': was expecting ('true', 'false' or 'null')(ajax中data动态获取数据)
- C# 参考之文字关键字null、true、false、default 以及where
- php中0," ",null和false的区别
- PHP之TRUE与FALSE总结
- 微信小程序 --- Expecting 'STRING','NUMBER','NULL','TRUE','FALSE','{','[', got EOF 1 |
- JavaScript中为什么null==0为false而null大于=0为true(个人研究)
- A B两个相同长度整数数组,判断相同下标对应值是否相等,true或者false 存在布尔数组C中
- PHP json_decode($json, TRUE) TRUE使数据格式化为Array,而非object