Pour commencer, voyons comment utiliser un goto avec PHP >=5.3. L'opérateur goto permet de demander à se déplacer dans le script. Que cela soit vers l'avant, ou vers l'arrière.
Cependant comme vous le savez, pour ce déplacer dans un espace bi-dimensionnel il faut un point de départ et un point d'arrivé. L'instruction goto nous servira de point de départ. Nous devrons ensuite disposer un « label », une étiquette qui nous servira de point d'arriver.
Prenons un premier exemple simple ; qui va faire un retour en arrière une fois pour réécrire « bonjour » :
$flag = false;
label:
echo "bonjour !\n";
if (!$flag) {
$flag = true;
goto label;
}
L'exemple suivant retournera :
bonjour !\n
bonjour !\n
Si vous considérer cela comme inutile, je suis un peu d'accord avec vous. Je fais partie de ceux qui ne comprennent pas pourquoi avoir implémenté ceci dans PHP à l'aire du tout objet. Il serait facile, voire plus correct d'utiliser des fonctions ou des méthodes pour réaliser ce genre de cas.
Je ne vois pas d'application pratique réellement intéressante à l'utilisation de cette nouvelle structure de contrôle. De plus le danger dans l'utilisation de goto est de rendre à termes les scripts potentiellement illisibles et difficiles à maintenir.
En conclusion, jouer avec goto c'est marrant, ça fait très rétro et c'est emplein de nostalgie mais c'est dangereux, pas beau et tout vilain.