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 相关文章推荐
推荐文章系统(一)
Oct 09 PHP
使PHP自定义函数返回多个值
Nov 26 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
php中定时计划任务的实现原理
Jan 08 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
php教程之phpize使用方法
Feb 12 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
php防止sql注入简单分析
Mar 18 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 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中去掉字符串首尾空格的方法
2012/05/19 PHP
关于crontab的使用详解
2013/06/24 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
javascript事件模型介绍
2016/05/31 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
电脑专业个人求职信范文
2014/02/04 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
师德师风学习材料
2014/12/19 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
夏洛特的网观后感
2015/06/15 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
python自动化之如何利用allure生成测试报告
2021/05/02 Python
Feign调用传输文件异常的解决
2021/06/24 Java/Android