Bonjour,

Je suis un développeur PHP du dimanche (comprendre, je fais juste des bidouilles mineures) et j'essaie de convertir un vieux logiciel PHP5 pour PHP8.

Notamment il faut remplacer toutes les instructions each.

La majorité du temps, j'utilise ce modèle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
while (list($key, $value) = @each($_POST['form']))
est remplacé par cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
foreach ($_POST['form'] as $key => $value)
J'en ai corrigé des dizaines dans le style.

-

Mais j'ai un doute avec ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
while (list($key) = each($str)) { 
    $str[$key] = $this->xss_clean($str[$key]); 
}
Est-ce que ce remplacement va fonctionner ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
foreach ($str as $key => $value) { 
    $str[$key] = $this->xss_clean($str[$key]); 
}
Il y a le même type de code plus loin :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
while (list($key) = each($data)) {
    if ( is_array($data[$key])) continue;
    if ($data[$key] != 'TRUE' && $data[$key] != 'FALSE' && ($key != $data[$key] OR $embedded_tags !== TRUE))
Que je remplacerais par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
foreach ($data as $key => $value) { 
    if ( is_array($data[$key])) continue;
    if ($data[$key] != 'TRUE' && $data[$key] != 'FALSE' && ($key != $data[$key] OR $embedded_tags !== TRUE))
Vous me direz, il suffit de tester, mais ces bouts de code se trouvent dans des méandres de librairies, je ne sais pas à quel moment ils sont appelés...

Merci d'avance à celui ou ceux qui me confirmeront ou non ces changements, sans doute triviaux pour un vrai développeur PHP.