Zugegeben, ich bin kein PHP-Programmierer, und ich weiß nicht, wie PHP's genaue Implementierung von GOTO aussehen wird, aber hier ist Mein Verständnis von GOTO:
GOTO ist nur eine explizite Flow-Control-Anweisung wie jede andere. Nehmen wir an, Sie haben einige verschachtelte Loops und Sie müssen nur eine Sache finden. Sie können eine bedingte Anweisung (oder mehrere) eingeben und wenn die Bedingungen richtig erfüllt sind, können Sie eine GOTO-Anweisung verwenden, um alle Schleifen zu verlassen (anstatt eine 'break'-Anweisung auf jeder Verschachtelungsebene mit einer bedingten Anweisung zu haben) . für jeden und ja, ich glaube, die traditionelle Implementierung genannt Etiketten haben, die die GOTO-Anweisung mit Namen springen können Sie etwas tun können.
for(...) {
for (...) {
for (...) {
// some code
if (x) GOTO outside;
}
}
}
:outside
Dies ist eine einfacher (und effiziente) -Implementierung . als ohne GOTO-Anweisungen würden die äquivalent sein: sind dre
for(...) {
for (...) {
for (...) {
// some code
if (x) break;
}
if(x) break;
}
if(x) break;
}
im zweiten Fall (was allgemein üblich ist) Die bedingten Anweisungen, die offensichtlich langsamer sind als nur eine. Aus Gründen der Optimierung/Vereinfachung sollten Sie GOTO-Anweisungen daher in eng verschachtelten Schleifen verwenden.
Und in der Tat ist es in PHP5 ist. Und was es tut, ist "einfach nur goto". –