PHP - 错误日志中的未识别索引即使使用 isset 检查会话变量

PHP - Unidentified index in error log even though using isset to check for session variable

我运行下面检查PHP(在Slim中间件中)以确保某个会话变量存在:

public function __invoke($request, $response, $next) {

    if (isset($_SESSION['errors'])) { // this is line 17
      // do something
    }

    $response = $next($request, $response);
    return $response;

}

但是,我的错误日志中充斥着以下内容:

PHP Notice:  Undefined index: errors in /our/path/app/Middleware/ValidationErrorsMiddleware.php on line 17

我该怎么做才能不显示为错误?

我在这里找到了一个解决方案:PHP: Notice Undefined index even using isset 但我的情况不同,因为我在检查之前没有访问变量。

您可以使用 array_key_exists 而不是 isset

if(array_key_exists('errors', $_SESSION)) {
 //Do something
}

您可以在此处找到文档: https://www.php.net/manual/es/function.array-key-exists.php