0

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

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

这样做会简单得多:

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

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

谢谢

4

3 回答 3

1
if (!empty($_SESSION['super_user'])) {
    // ...
}
于 2013-03-12T15:29:18.917 回答
0

您最初可以设置$_SESSION['super_user']false并且仅true在用户是超级用户时才将其设置为。然后你可以随时使用if ($_SESSION['super_user']) {}.

于 2013-03-12T15:29:25.890 回答
0

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

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

但是,正确的方法是

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

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

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

于 2013-03-12T15:30:44.073 回答