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者的疑难问答(2)
Oct 09 PHP
请php正则走开
Mar 15 PHP
php 全局变量范围分析
Aug 07 PHP
php array_walk() 数组函数
Jul 12 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
php post换行的方法
Feb 03 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
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
详解node中创建服务进程
2017/05/09 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
windows下python安装pip图文教程
2018/05/25 Python
python爬虫超时的处理的实例
2018/12/19 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
详解Anaconda 的安装教程
2020/09/23 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
我的教育故事演讲稿
2014/05/04 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
保管员岗位职责
2015/02/14 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
新年祝酒词大全
2015/08/11 职场文书
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫