请看一下这段代码:
$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
知道如何修复它吗?
只需使用空数组即可:
$end = isset($newvar) ? array($newvar) : [];
array_shift 将在第一次调用时返回
null
,并以空数组作为输入,因此循环将不会执行。