合并两个if条件


Merge two if conditions

我必须实现一些功能的管理。为此,我正在检查会话是否为admin设置。

我使用了两个嵌套的if语句来检查会话变量,

session_start();
if(isset($_SESSION['user_type']))
{
    if($_SESSION['user_type']== 'admin')
    {
          //functionality
    }
}

我没有上面的代码问题。它工作得很好。但是我想知道是否有任何方法可以在单个if语句中编写上述逻辑。

如果我写

if(isset($_SESSION['user_type']) && $_SESSION['user_type']== 'admin')

if(isset($_SESSION['user_type']) == 'admin')

如果没有设置$_SESSION['user_type'],则给出错误。

有办法吗?请帮助

你写的东西会很好:

if(isset($_SESSION['user_type']) && $_SESSION['user_type']== 'admin')

PHP在求布尔表达式时使用短路求值,因此$_SESSION['user_type']== 'admin'只会在isset($_SESSION['user_type'])返回true时求值,从而防止抛出错误。

可能值得一提的是,isset只在键存在于数组的值不是null时才返回true,而array_key_exists('user_type', $_SESSION)则在键存在时返回true,而不管它的值是什么。

在这种情况下,这无关紧要,但为了将来参考!

我删除了一些小错误,请试试这个:

if(isset($_SESSION['user_type']) && $_SESSION['user_type'] === 'admin') {