博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中empty()、isset()、is_null()和变量本身的布尔判断区别(转)
阅读量:6670 次
发布时间:2019-06-25

本文共 1541 字,大约阅读时间需要 5 分钟。

在php脚本中,我们经常要去判断一个变量是否已定义或者是否为空,就需要用到这些函数empty()、isset()、is_null()和其本身作为参数,下面小段程序做个简要比较

传入值为:' . $value . '
'; if (!isset($value)) {
echo 'isset()==false
'; } if (empty($value)) {
echo 'empty()==true
'; } if (!$value) {
echo 'self==false
'; } if (is_null($value)) {
echo 'is_null()==true
'; } } ?> 输出结果: 传入值为: empty()==true self==false 传入值为:0 empty()==true self==false 传入值为:0 empty()==true self==false 传入值为: isset()==false empty()==true self==false is_null()==true 传入值为: empty()==true self==false 传入值为:Array empty()==true self==false

总结一:从结果中可以看出,""0"0"NULLFALSEarray()这几个中,empty()和“变量本身作为参数”结果一致,均作为“空”来处理,而isset()和is_null ()仅当是null时,才作为“空”来处理(值得注意的是false并不会被认为是空)

下面我们看下当一个变量未定义初始化时,这些函数返回的是什么

echo '
传入值为:undefine
'; if (!isset($value_undefine)) {
echo 'isset()==false
'; } if (empty($value_undefine)) {
echo 'empty()==true
'; } if (!$value_undefine) {
echo 'self==false
'; } if (is_null($value_undefine)) {
echo 'is_null()==true
'; } 输出结果: 传入值为:undefine isset()==false empty()==true (此处警告变量未定义) self==false (此处警告变量未定义) is_null()==true

 总结二:由结果可看出,当变量未定义时,is_null()和“本身参数”是不允许作为参数判断的,虽然结果可以判断出来为“空”,建议不使用。

isset()和empty()可以正常判断出为"空"的.

 

1
2
3
4
5
6
7
8
9
最后总结:
 
isset(),仅当null和未定义,返回false
 
empty
(),
""
、0、
"0"
、NULL、FALSE、
array
(),未定义,均返回false
 
本身作为参数,与
empty
()一致,但接受未定义变量时,报警告
 
is_null
(),仅判断是否为null,未定义报警告
 

 

http://www.cnblogs.com/huangzhen/archive/2011/08/21/2147808.html#3303118

你可能感兴趣的文章
Python设计模式-装饰器模式
查看>>
前端每周清单第 30 期:WebVR 指南,Vue 代码分割范式,理想的 React 架构特性
查看>>
C 语言结构体内存布局问题
查看>>
js 数组排序
查看>>
iOS VIPER架构实践(一):从MVC到MVVM到VIPER
查看>>
Android鬼点子-近期项目总结(2)-日历
查看>>
是时候学习真正的 spark 技术了
查看>>
android开发怎么少的了后端(上)
查看>>
android应用检测更新
查看>>
从硅谷到杭州:一个海归的阿里故事
查看>>
Objective-C 之Block(1)
查看>>
Android MP3录制,波形显示,音频权限兼容与播放
查看>>
那些年我造的轮子之RPC
查看>>
构建Spring Cloud微服务分布式云架构详细步骤
查看>>
三次握手与四次挥手
查看>>
Spring Task定时任务的配置和使用
查看>>
逆向中使用weak
查看>>
CoordinatorLayout、AppBarLayout实现上滑隐藏图片,下滑显示图片
查看>>
React-Router底层原理分析与实现
查看>>
十五、Android性能优化之提升应用的启动速度和Splash页面的设计
查看>>