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中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
PHP获取photoshop写入图片文字信息的方法
Mar 31 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 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
多重?l件?合查?(一)
2006/10/09 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
php中使用GD库做验证码
2016/03/31 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
js实现微博发布小功能
2017/01/12 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
django-allauth入门学习和使用详解
2019/07/03 Python
Python 操作 MySQL数据库
2020/09/18 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
联想台湾官网:Lenovo TW
2018/05/09 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
出售房屋委托书范本
2014/09/24 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
python库sklearn常用操作
2021/08/23 Python
MySQL 数据 data 基本操作
2022/05/04 MySQL