请看下面的代码:
$end = isset($newvar) ? array($newvar) : null;
while($ends = array_shift($end)){
...
当我使用PHP7.2
时,它工作得很好,但在升级到8.1
后,它抛出:
PHP致命错误:未捕获TypeError:ARRAY_SHIFT():参数#1($ARRAY)的类型必须为ARRAY,在/Path/to/qanda.php:469中给出的值为空
知道我怎么才能修好它吗?
请看下面的代码:
$end = isset($newvar) ? array($newvar) : null;
while($ends = array_shift($end)){
...
当我使用PHP7.2
时,它工作得很好,但在升级到8.1
后,它抛出:
PHP致命错误:未捕获TypeError:ARRAY_SHIFT():参数#1($ARRAY)的类型必须为ARRAY,在/Path/to/qanda.php:469中给出的值为空
知道我怎么才能修好它吗?
只需使用空数组即可:
$end = isset($newvar) ? array($newvar) : [];
array_shift将在第一次调用时返回null
,并将空数组作为输入,因此不会执行循环.