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可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 PHP
php email邮箱正则
Oct 08 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
laravel 4安装及入门图文教程
Oct 29 PHP
分享php分页的功能模块
Jun 16 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
在laravel中实现事务回滚的方法
Oct 10 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
php中使用array_filter()函数过滤数组实例讲解
Mar 03 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
虫族 ZERG 概述
2020/03/14 星际争霸
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
laravel5.6实现数值转换
2019/10/23 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
微信小程序form表单组件示例代码
2018/07/15 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python使用turtule画五角星的方法
2015/07/09 Python
Python时间获取及转换知识汇总
2017/01/11 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
win10安装python3.6的常见问题
2020/07/01 Python
Python list和str互转的实现示例
2020/11/16 Python
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
门卫岗位职责说明书
2014/08/18 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
我的长征观后感
2015/06/09 职场文书
初婚未育证明样本
2015/06/18 职场文书