PHP Conference China 2020

goto

(PHP 5 >= 5.3.0, PHP 7)

Quelle est la chose la plus bizarre lors de l'utilisation de goto ?
Image fournie par » xkcd

L'opérateur goto peut être utilisé pour continuer l'exécution du script à un autre point du programme. La cible est spécifiée par un label, suivi de deux-point, et l'instruction goto est ensuite suivie de ce label. goto n'est pas totalement sans limitations. L'étiquette cible doit être dans le même contexte et fichier, ce qui signifie qu'il n'est pas possible de changer de méthode ou de fonction, ni de se rendre dans une autre fonction. Vous pouvez sortir d'une fonction, et l'utilisation courante est alors de se servir de goto comme un break.

Exemple #1 Exemple avec goto

<?php
goto a;
echo 
'Foo';
 
a:
echo 
'Bar';
?>

L'exemple ci-dessus va afficher :

Bar

Exemple #2 Exemple de boucle avec goto

<?php
for($i=0,$j=50$i<100$i++) {
  while(
$j--) {
    if(
$j==17) goto end
  }  
}
echo 
"i = $i";
end:
echo 
'j hit 17';
?>

L'exemple ci-dessus va afficher :

j hit 17

Exemple #3 Ce goto ne fonctionne pas

<?php
goto loop;
for(
$i=0,$j=50$i<100$i++) {
  while(
$j--) {
    
loop:
  }
}
echo 
"$i = $i";
?>

L'exemple ci-dessus va afficher :

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Note:

L'opérateur goto est disponible depuis PHP 5.3.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top