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+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
PHP的加密方式及原理
Jun 14 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
PHP不用递归实现无限分级的例子分享
Apr 18 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
用 Composer构建自己的 PHP 框架之构建路由
Oct 30 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
php中Array2xml类实现数组转化成XML实例
Dec 08 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
php设计模式之单例模式代码
Jun 11 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
提高Laravel应用性能方法详解
Jun 24 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 数字左侧自动补0
2008/03/31 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
深入koa-bodyparser原理解析
2019/01/16 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
详解Python中的正则表达式的用法
2015/04/09 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
台湾三立电视电商平台:电电购
2019/09/09 全球购物
个人自我剖析材料
2014/02/07 职场文书
上班迟到检讨书
2014/09/15 职场文书
搬迁通知
2015/04/20 职场文书
合同纠纷调解书
2015/05/20 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书