PHP错误-注意:缩写为if/else的未定义索引


PHP errors - Notice: Undefined index in shorthand if/else

我知道Notice: Undefined index错误是因为缺少isset()

以下声明没有得到任何错误或通知:

if (isset($_SESSION['userid'])) {
    $userid = $_SESSION['userid'];  
}

但是以下语句,得到Notice: Undefined index:

$userid = $_SESSION['userid'] ? isset($_SESSION['userid']) : NULL;

请告诉我为什么在使用缩写if/else时会引起注意?

你做错了。应该是这样的:

$userid = isset($_SESSION['userid']) ? $_SESSION['userid'] : NULL;

首先检查变量是否已设置,然后使用其值。

试着用正确的方式绕过

$userid = isset($_SESSION['userid']) ? $_SESSION['userid']  : NULL;