Maison >développement back-end >tutoriel php >Comment remplacer la fonction obsolète `each()` de PHP ?

Comment remplacer la fonction obsolète `each()` de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-20 15:01:11758parcourir

How to Replace PHP's Deprecated `each()` Function?

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é :

  1. Attribuer des valeurs avec reset() et list() :

    $ar = $o->me;
    reset($ar);
    list($typ, $val) = each($ar);
  2. Attribution directe de valeurs :

    $out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
    $expected = each($out);
  3. Itération incorrecte dans un tableau :

    for(reset($broken);$kv = each($broken);) {...}
  4. Ignorer la clé dans une liste() affectation :

    list(, $this->result) = each($this->cache_data);
  5. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn