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初学者头疼问题总结
Jul 08 PHP
最令PHP初学者头痛的十四个问题
Jul 12 PHP
学习使用PHP数组
Oct 09 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
php递归json类实例
Dec 02 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
PHP使用Redis实现Session共享的实现示例
May 12 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
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
python逐行读取文件内容的三种方法
2014/01/20 Python
python安装以及IDE的配置教程
2015/04/29 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
财务会计专业推荐信
2013/11/30 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
会计学习心得体会
2014/09/09 职场文书
购房委托书
2014/10/15 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python