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 :
while (list($key, $value) = @each($_POST['form']))
est remplacé par cela :
foreach ($_POST['form'] as $key => $value)
J'en ai corrigé des dizaines dans le style.
-
Mais j'ai un doute avec ceci :
1 2 3
| while (list($key) = each($str)) {
$str[$key] = $this->xss_clean($str[$key]);
} |
Est-ce que ce remplacement va fonctionner ?
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 :
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 :
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.
Partager