执行isset($variable)和检查变量值的更好方法


Better way of doing isset($variable) and check variable value

我想知道是否有比我一直做的更好的方法来检查可能未设置的变量的值?例如:

if(isset($_SESSION['super_user']) && $_SESSION['super_user'] == true) {
  echo 'hi super user';
}

这样做会简单得多:

if($_SESSION['super_user']) {
  echo 'hi super user';
}

但我最终会收到一个未定义索引的通知。有没有其他方法可以做这种简单的验证,或者我必须坚持我的实际方法?

感谢

if (!empty($_SESSION['super_user'])) {
    // ...
}

最初可以将$_SESSION['super_user']设置为false,只有当用户是超级用户时才能将其设置为true。那么您就可以一直使用if ($_SESSION['super_user']) {}

对于特定的示例,您当前的代码可以缩短为

if(!empty($_SESSION['super_user']))

然而,正确的方法是

if ($_SESSION['role'] == 'super_user')

我想知道是否有比我通常做的更好的方法来检查可能未设置的变量的值?

是的。始终定义所有变量。就像我在上面发布的一个。始终为所有用户提供一个role元素,无需检查它是否存在。