php中0与空 Null false的区别
2015-07-26 14:28
477 查看
<?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!
所以可以这样说===是等于下面的函数:
$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; } } |
相关文章推荐
- [PHP插件教程]001.Pear包管理器
- rtp对h264 nalu fu-a的处理
- ThinkPHP 中 查询/更新操作
- S5PV210开发系列八_Yaffs的移植
- LAMP+YII框架配置中遇到的问题
- PHP使用pdo连接数据库
- 浏览器格式化JSON输出,thinkphp
- PHP开发安全问题
- php关于闭包的应用
- 提高PHP编码的一些技巧
- PHP实现简单数字分页效果
- windows下FileZilla使用sftp(SSH-2)
- FindBugs:Compiler output path for module can not be null. check your module/project settings问题原因
- php编译安装及phpize使用
- TFTP的配置与使用
- thinkphp3.2 验证码生成和点击刷新验证码
- 一些无特征PHP一句话
- (二)PHP面向对象理论2---魔术方法、继承、多态
- ftp文件夹错误:windows无法访问此文件夹,请确保输入的文件名是否正确,并且您有权访问此文件
- PHP数据类型转换(字符转数字,数字转字符)