Php 合并两个if条件

Php 合并两个if条件,php,Php,我必须为管理员实现一些功能。为此,我正在检查会话是否设置为admin 我使用了两个嵌套的if语句来检查会话变量as session_start(); if(isset($_SESSION['user_type'])) { if($_SESSION['user_type']== 'admin') { //functionality } } 我对上面的代码没有问题。它很好用。但我想知道是否有任何方法可以在单个if语句中写入上述逻辑 如果我写 if(iss

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

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

session_start();
if(isset($_SESSION['user_type']))
{
    if($_SESSION['user_type']== 'admin')
    {
          //functionality
    }
}
我对上面的代码没有问题。它很好用。但我想知道是否有任何方法可以在单个if语句中写入上述逻辑

如果我写

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

如果未设置
$\u会话['user\u type']
,则会出现错误


有什么办法吗?请帮助

您所写的内容可以正常工作:

if(isset($_SESSION['user_type']) && $_SESSION['user_type']== 'admin')
PHP在计算布尔表达式时使用,因此只有当
设置($\u会话['user\u type'])
返回
true
时,才会计算
$\u会话['user\u type']=='admin'
,以防止抛出错误

值得一提的是,
isset
仅当密钥存在于数组中且其值不是
null
时才会返回true,而
array\u key\u exists('user\u type',$\u SESSION)
如果密钥存在,则无论其值如何,都将返回
true


在这种情况下,这并不重要,但供将来参考

我删除了一些小错误,请尝试一下:

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

您是否已尝试先检查admin和isset second?您也可以使用
array\u key\u exists
绕过此通知。@michael:它肯定不起作用,需要先检查isset。这不会给您“错误”(这是一个通知,而不是错误/警告)
if(isset($\u SESSION['user\u type'))和&$\u SESSION['user\u type']='admin'))
if(isset($\u SESSION['user\u type'])和&$\u SESSION['user\u type']=='admin'){}
应该可以正常工作。是为我做的。这和你只是稍微改变一下语义是一样的。问题是,最初的问题本身是毫无意义的,因为它是关于代码做什么的。它不应该给出任何错误。试图“修复”它会给人一种错误的印象,即代码实际上有问题。事实并非如此。只需更改为
==
?我不认为这能解决问题。谢谢你这么好的解释。
if(isset($_SESSION['user_type']) && $_SESSION['user_type'] === 'admin') {