$searchUrl = 'http://203.156.244.227:80/cgi...';
if(!empty($_GET['content']))
{
$searchUrl .= $_GET['content'];
}
if($_GET['content'])
{
$searchUrl .= $_GET['content'];
}
这两个判断有区别吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
if($var) 如果变量不存在会警告
if(!empty($var)) 不会警告
参考:http://php.net/empty
PHP的
empty($var)本质上与!isset($var) || $var == false等价.也就是楼主提到的
$_GET['content']如果内容为数字0,也会被视为empty,这样判断显然是不正确的.就判断是否为空的话是没有区别的。但是整体上empty还是比较强大一些的。类似的还有isset( )
作用上来说没区别的, 只是上面的可读性强一些, 不过见仁见智, 有些人还认为下面的方式简洁一些.
LZ的这种使用场景上只有告警级别的差别。
但是,如果使用
__get这样的魔术方法来获取某个对象的属性的时候,一定不要用empty,否则肯定总是返回true