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的超级变量$_GET获取HTML表单(Form) 数据
May 07 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
php实现的Cookies操作类实例
Sep 24 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 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版(2)
2006/10/09 PHP
php桌面中心(三) 修改数据库
2007/03/11 PHP
discuz安全提问算法
2007/06/06 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
JS类的封装及实现代码
2009/12/02 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
对python Tkinter Text的用法详解
2018/10/11 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
《数星星的孩子》教学反思
2014/04/11 职场文书
消防安全标语
2014/06/07 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript