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 ADODB使用方法集锦
Mar 25 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 PHP
PHP rsa加密解密算法原理解析
Dec 09 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
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
js查错流程归纳
2012/05/04 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
Python的面向对象思想分析
2015/01/14 Python
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python虚拟环境项目实例
2017/11/20 Python
Python冲顶大会 快来答题!
2018/01/17 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Django 拆分model和view的实现方法
2019/08/16 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
电大本科自我鉴定
2014/02/05 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
争先创优个人总结
2015/03/04 职场文书
欠条范文
2015/07/03 职场文书
小学数学教学反思范文
2016/02/16 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python