愚蠢的问题,我知道,但如果我不知道是否设置了变量$var
,我应该使用
isset($var) && !empty($var)
检查其中是否有任何值,或
!empty($var)
够了吗?如果$var
在第二种情况下为空,会出现问题吗?
答案 0 :(得分:9)
答案 1 :(得分:2)
是的,您可以放弃isset()
:
empty()
与(boolean) var
相反,但未设置变量时不会生成警告。
您可以使用以下代码查看此内容:
error_reporting(E_ALL);
var_dump(empty($var));
bool(true)
(注意缺少未定义的变量警告)
答案 2 :(得分:2)
你应该使用isset(),因为如果$ var为0,则empty()将返回false。
<?php
$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
//Evaluates false because $var is empty
if(!empty($var)){
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>
答案 3 :(得分:1)
我认为你可以完全删除isset()
,以防你使用empty()
,因为empty()
会检查变量是否也先设置
所以,毕竟使用
if (!empty($var)) {
//isset and not empty
}