Accordé, je ne suis pas un programmeur PHP, et je ne sais pas ce que l'implémentation exacte de PHP de GOTO va ressembler, mais voici ma compréhension de GOTO:
GOTO est juste une déclaration de contrôle de flux plus explicite que n'importe quelle autre. Disons que vous avez des boucles imbriquées et que vous n'avez besoin que de trouver une chose. Vous pouvez mettre une instruction conditionnelle (ou plusieurs) et lorsque les conditions sont correctement remplies, vous pouvez utiliser une instruction GOTO pour sortir de toutes les boucles (au lieu d'avoir une instruction 'break' à chaque niveau d'imbrication avec une instruction conditionnelle . pour chaque et oui, je crois que la mise en œuvre traditionnelle est d'avoir nommé des étiquettes que l'instruction GOTO peut sauter par nom Vous pouvez faire quelque chose comme ceci:.
for(...) {
for (...) {
for (...) {
// some code
if (x) GOTO outside;
}
}
}
:outside
Ceci est une mise en œuvre plus simple (et plus efficace) . que sans GOTO l'équivalent serait:
for(...) {
for (...) {
for (...) {
// some code
if (x) break;
}
if(x) break;
}
if(x) break;
}
Dans le second cas (ce qui est pratique courante) il y a thre Les instructions conditionnelles, ce qui est évidemment plus lent que de n'en avoir qu'une. Donc, pour des raisons d'optimisation/simplification, vous pouvez utiliser les instructions GOTO dans des boucles étroitement imbriquées.
Et en fait, il est en PHP5. Et ce qu'il fait est, "tout simplement goto". –