PHP中空字符串介绍0、null、empty和false之间的关系


Posted in PHP onSeptember 25, 2012

如果用错方法函数或是用少了,如果几个方法函数的逻辑顺序错了,很可能就是一个漏洞,而且不容易找出来。纠结啊~

上网找找看哪位高人有总结出相关的结论出来,果然有!不过似乎不是很全面,我在这里稍完善了一下,仅供参考。

// 判断 0 与 ''、null、empty、false 之间的关系 
$a = 0; 
echo "0 与 ''、 empty、null、false 之间的关系:"; 
if($a == ''){ 
echo "0 == '';"; 
}else{ 
echo "0 != '';"; 
} 
if(trim($a) == ''){ 
echo "trim(0) == '';"; 
}else{ 
echo "trim(0) != '';"; 
} 
if(strval($a) == ''){ 
echo "strval(0) == '';"; 
}else{ 
echo "strval(0) != '';"; 
} 
if($a === ''){ 
echo "0 === '';"; 
}else{ 
echo "0 !=== '';"; 
} 
if(empty($a)){ 
echo "0 is empty;"; 
}else{ 
echo "0 is not empty;"; 
} 
if(is_null($a)){ 
echo "0 is null;"; 
}else{ 
echo "0 is not null;"; 
} 
if(is_numeric($a)){ 
echo "0 is numeric;"; 
}else{ 
echo "0 is not numeric;"; 
} 
if(is_string($a)){ 
echo "0 is string;"; 
}else{ 
echo "0 is not string;"; 
} 
if(!$a){ 
echo "0 is false;"; 
}else{ 
echo "0 is not false;"; 
} 
// 判断 '' 和 0、null、empty、false 之间的关系 
$a = ''; 
echo "'' 和 0、empty、null、false 之间的关系:"; 
if($a == 0){ 
echo "'' == 0;"; 
}else{ 
echo "'' != 0;"; 
} 
if(intval($a) == 0){ 
echo "intval('') == 0;"; 
}else{ 
echo "intval('') != 0;"; 
} 
if(empty($a)){ 
echo "'' is empty;"; 
}else{ 
echo "'' is not empty;"; 
} 
if(is_null($a)){ 
echo "'' is null;"; 
}else{ 
echo "'' is not null;"; 
} 
if(is_numeric($a)){ 
echo "'' is numeric;"; 
}else{ 
echo "'' is not numeric;"; 
} 
if(is_string($a)){ 
echo "'' is string;"; 
}else{ 
echo "'' is not string;"; 
} 
if(!$a){ 
echo "'' is false;"; 
}else{ 
echo "'' is not false;"; 
} 
// 判断 null 和 ''、0、empty、false 之间的关系 
$a = null; 
echo "null 和 ''、0、empty、false 之间的关系:"; 
if($a == ''){ 
echo "null == '';"; 
}else{ 
echo "null != '';"; 
} 
if($a == 0){ 
echo "null == 0;"; 
}else{ 
echo "null != 0;"; 
} 
if($a === ''){ 
echo "null === '';"; 
}else{ 
echo "null !=== '';"; 
} 
if($a === 0){ 
echo "null === 0;"; 
}else{ 
echo "null !=== 0;"; 
} 
if(strval($a) == ''){ 
echo "strval(null) == '';"; 
}else{ 
echo "strval(null) != '';"; 
} 
if(intval($a) == 0){ 
echo "intval(null) == 0;"; 
}else{ 
echo "intval(null) != 0;"; 
} 
if(empty($a)){ 
echo "null is empty;"; 
}else{ 
echo "null is not empty;"; 
} 
if(is_numeric($a)){ 
echo "null is numeric;"; 
}else{ 
echo "null is not numeric;"; 
} 
if(is_string($a)){ 
echo "null is string;"; 
}else{ 
echo "null is not string;"; 
} 
if(!$a){ 
echo "null is false;"; 
}else{ 
echo "null is not false;"; 
} 
echo "";

输出的结果是:

PHP中空字符串介绍0、null、empty和false之间的关系

我想根据输出结果都可以清楚了解决空字符串、0、null、empty和false之间的大概关系,在开发过程中灵活运用上述代码里的方法,加上良好的逻辑,基本上应该是不会出现问题的了。

点击下载相关源代码

PHP 相关文章推荐
PHP 引用文件技巧
Mar 02 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
关于php循环跳出的问题
Jul 01 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
PHP面向对象教程之自定义类
Jun 10 PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
Yii框架where查询用法实例分析
Oct 22 PHP
PHP获取网址的顶级域名函数代码
Sep 24 #PHP
ThinkPHP关联模型操作实例分析
Sep 23 #PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 #PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 #PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 #PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 #PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 #PHP
You might like
论坛头像随机变换代码
2006/10/09 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
javascript中的this详解
2014/12/08 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
电子信息工程专业推荐信
2014/02/14 职场文书
教师远程培训感言
2014/03/06 职场文书
安全承诺书范文
2014/03/26 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
英语复习计划
2015/01/19 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python