J'ai un truc que je n'arrive pas à comprendre. Soit le code suivant :
for ($descriptif = 0 ; $descriptif < 5 ; $descriptif++, $nid++, $vid++) {
echo "<p><strong>$nid : $vid : external NID : " . $linked_node_nid . "</strong></p>";
if (!$record[1 + $descriptif] || (strpos($record[1 + $descriptif], "xx") !== FALSE)){
$nid--;
$vid--;
echo '<p class="SQLMessage">C\'est vide</p>';
continue;
}
$language = "";
switch ($descriptif) {
case 0:
$language = "fr";
$nid--;
$vid--;
echo '<p class="SQLMessage">C\'est du Français</p>';
continue;
case 1:
$language = "en";
echo '<p class="SQLMessage">C\'est de l\'Anglais</p>';
break;
case 2:
$language = "de";
echo '<p class="SQLMessage">C\'est de l\'Allemand</p>';
break;
case 3:
$language = "it";
echo '<p class="SQLMessage">C\'est de l\'Italien</p>';
break;
case 4:
$language = "es";
echo '<p class="SQLMessage">C\'est de l\'Espagnol</p>';
break;
} // endswitch
// Suite du code
} // endfor
Il semble que mon continue, quand $descriptif vaut 0, fasse comme un break, soit que plutôt que de passer à l'itération suivante du for, le code après le switch est effectué.
Si je me base sur
cette page ou
celle-ci (qui, même hors contexte, permet bien de comprendre que
switch n'est pas une boucle), je ne devrais pas avoir ce comportement. Je vois ça sous PHP 5.2.11, et il ne semble pas avoir de bug annoncé pour ce genre de chose.
Qu'est-ce que j'ai de faux dans mon raisonnement ?
Merci