Mise à niveau du code de la fonction each() obsolète
PHP 7.2 a rendu obsolète la fonction each(), provoquant des avertissements lors de son utilisation. Cet article explique comment moderniser votre code et éviter d'utiliser each().
Exemples de cas
Voici plusieurs exemples où each() a déjà été utilisé :
Attribuer des valeurs avec reset() et list() :
$ar = $o->me; reset($ar); list($typ, $val) = each($ar);
Attribution directe de valeurs :
$out = array('me' => array(), 'mytype' => 2, '_php_class' => null); $expected = each($out);
Itération incorrecte dans un tableau :
for(reset($broken);$kv = each($broken);) {...}
Ignorer la clé dans une liste() affectation :
list(, $this->result) = each($this->cache_data);
Itération incorrecte avec les contrôles de longueur :
reset($array); while( (list($id, $item) = each($array)) || $i < 30 ) { // code $i++; }
Code mis à jour
1. Attribution de valeurs
Remplacer par key() et current() :
$ar = $o->me; $typ = key($ar); $val = current($ar);
2. Affectation directe
Remplacer par une clé et une valeur de tableau explicites :
$out = array('me' => array(), 'mytype' => 2, '_php_class' => null); $expected = [key($out), current($out)];
3. Itération correcte
Utilisez foreach() et attribuez la paire clé-valeur à l'intérieur de la boucle :
foreach ($broken as $k => $v) { $kv = [$k, $v]; }
4. Clé Ignorer
Attribuer directement la valeur actuelle :
$this->result = current($this->cache_data);
5. Itération de tableau avec vérifications
Remplacer par une boucle for() traditionnelle :
reset($array); for ($i = 0; $i < 30; $i++) { $id = key($array); $item = current($array); // code next($array); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!