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