扫码关注官方订阅号
$str = '';
if($str)
if(isset($str))
if(empty($str))
以上三种写法的区别到底是什么??请详细告知
走同样的路,发现不同的人生
isset是当且仅当变量为NULL才会返回false,否则返回true有三种情况下变量为NULL1、赋值为NULL2、未被赋值3、unset()
empty判断支持多种数据类型数值型(int,float) 0 返回true,非0返回falseString '' 返回true(这里比较有意思的是'0'同样返回true)布尔类型 false 返回truearray 没有元素返回trueNULL返回true
如果还不了解,希望可以自己动手,把上面的数据类型都用isset和empty比较一下。希望对你有帮助!
if($str) $str这个变量是一定要存在的,为空的情况有:null, '', 0, false
isset($str) $str可以不用定义,为空的情况有:null
empty($str) $str也可以不用定义,为空的情况有:null, false, 0, ''
可参考PHP中empty()和isset()的区别
参考php.net
官方类型比较说明 http://php.net/manual/zh/type...
你把变量设置为null就了解了。
这个,看函数名就能理解他们的区别了。
看下这个
$foo = 0; $foo = ''; $foo = array(); $foo = NULL; $foo = false;
上面这些情况都被认为是empty,也就是empty($foo)返回真.所以说if(empty($foo))跟if(!isset($foo))是不等价的,倒是跟if($foo)有点像.个人觉得还是用isset好些,避免被坑.
empty($foo)
if(empty($foo))
if(!isset($foo))
if($foo)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
isset是当且仅当变量为NULL才会返回false,否则返回true
有三种情况下变量为NULL
1、赋值为NULL
2、未被赋值
3、unset()
empty判断支持多种数据类型
数值型(int,float) 0 返回true,非0返回false
String '' 返回true(这里比较有意思的是'0'同样返回true)
布尔类型 false 返回true
array 没有元素返回true
NULL返回true
如果还不了解,希望可以自己动手,把上面的数据类型都用isset和empty比较一下。
希望对你有帮助!
if($str) $str这个变量是一定要存在的,为空的情况有:null, '', 0, false
isset($str) $str可以不用定义,为空的情况有:null
empty($str) $str也可以不用定义,为空的情况有:null, false, 0, ''
可参考PHP中empty()和isset()的区别
参考php.net
官方类型比较说明 http://php.net/manual/zh/type...
你把变量设置为null就了解了。
这个,看函数名就能理解他们的区别了。
看下这个
上面这些情况都被认为是empty,也就是
empty($foo)返回真.所以说
if(empty($foo))跟if(!isset($foo))是不等价的,倒是跟if($foo)有点像.个人觉得还是用isset好些,避免被坑.