Veuillez jeter un oeil à ce code :
$end = isset($newvar) ? array($newvar) : null; while($ends = array_shift($end)){ ...
Quand j'utilise PHP 7.2
时运行良好,但升级到 8.1
ça lance :
Erreur fatale PHP : Uncaught TypeError : array_shift() : le paramètre n°1 ($array) doit être de type tableau, donné null dans /path/to/qanda.php:469
Une idée pour résoudre ce problème ?
La solution la plus basique consiste à remplacer la valeur
null
par un tableau vide pour respecter les exigences de type :Vous pouvez également créer un tableau et utiliser l'
$newvar
opérateur de coalescence nul sur :Mais je ne comprends pas pourquoi vous créeriez un tableau avec une seule valeur, puis créeriez une boucle en utilisant la valeur de retour de
array_shift
. Le corps de la boucle ne s'exécutera qu'une seule fois. Peut-être simplement utiliser un conditionnel ?Utilisez simplement un tableau vide :
array_shift renverra un tableau
null
vide en entrée lors du premier appel, donc la boucle ne s'exécutera pas.