如何处理 Null 上的 array_shift() ?

问题描述 投票:0回答:1

请看一下这段代码:

$end = isset($newvar) ? array($newvar) : null;
while($ends = array_shift($end)){
  ...

当我使用 PHP

7.2
时运行良好,但是升级到
8.1
后,它抛出:

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

知道如何修复它吗?

php fatal-error php-8
1个回答
2
投票

只需使用空数组即可:

$end = isset($newvar) ? array($newvar) : [];

array_shift 将在第一次调用时返回

null
,并以空数组作为输入,因此循环将不会执行。

© www.soinside.com 2019 - 2024. All rights reserved.