PHP - 未定义的索引求解返回警告

PHP - Undefined index solving returns warining

提问人:nacklicious 提问时间:3/24/2022 更新时间:3/24/2022 访问量:117

问:

我的PHP项目中有一个函数,它有一些特定的参数。

 $user_sequence = $user['user_sequence'];

 if ($cached || !$user_sequence) {
    return;
 }

注意:未定义索引:user_sequence

我已经用以下方法解决了这个问题:

        if (isset($user['user_sequence'])) {                     
           $user_sequence = $user['user_sequence'];     
         }

但现在我的第二个条款得到了一个警告:if()

变量“$user_sequence”可能未定义

之前将其设置为 null 是解决它的最佳方法吗?谢谢if()

php isset 未定义索引

评论

2赞 CBroe 3/24/2022
使用 null 合并运算符可能会更“整洁”。php.net/manual/en/...stackoverflow.com/questions/34571330/......

答:

0赞 IMSoP 3/24/2022 #1

完整拼写后,您需要指定如果未设置的值应该是多少。在第二个 if 语句中,您正在检查 ,因此逻辑默认值为 boolean :$user['user_sequence']!$user_sequencefalse

if (isset($user['user_sequence'])) {                     
   $user_sequence = $user['user_sequence'];
}
else {
   $user_sequence = false;
}

幸运的是,PHP 没有使用写出整个语句,因为我们可以使用 null 合并运算符,并将其缩短为:if

$user_sequence = $user['user_sequence'] ?? false;

在其他情况下,您可能希望默认为空数组 () 甚至只使用空数组 ()。$something ?? []null$something ?? null