如何处理 Null 上的 array_shift() ?

Mar*_* AJ 2 php fatal-error php-8

请看一下这段代码:

$end = isset($newvar) ? array($newvar) : null;
while($ends = array_shift($end)){
  ...
Run Code Online (Sandbox Code Playgroud)

当我使用 PHP 时它运行良好7.2,但升级到 PHP 后8.1,它会抛出:

PHP 致命错误:未捕获类型错误:array_shift():参数 #1 ($array) 必须是数组类型,在 /path/to/qanda.php:469 中给出 null

知道如何修复它吗?

Nic*_*ick 5

只需使用一个空数组即可:

$end = isset($newvar) ? array($newvar) : [];
Run Code Online (Sandbox Code Playgroud)

array_shift将在第一次调用时返回null一个空数组作为输入,因此循环不会执行。