De acuerdo, no soy un programador de PHP, y no sé cómo se verá la implementación exacta de PHP de GOTO, pero aquí está mi comprensión de GOTO:
GOTO es simplemente una declaración de control de flujo más explícita como cualquier otra. Digamos que tienes algunos bucles anidados y solo necesitas encontrar una cosa. Puede poner en una declaración condicional (o varias) y cuando las condiciones se cumplen adecuadamente, puede usar una instrucción GOTO para salir de todos los bucles (en lugar de tener una instrucción 'break' en cada nivel de anidación con una instrucción condicional . para cada y sí, creo que la aplicación tradicional es tener etiquetas con nombre que la sentencia GOTO puede saltar a por su nombre Usted puede hacer algo como esto:.
for(...) {
for (...) {
for (...) {
// some code
if (x) GOTO outside;
}
}
}
:outside
esta es una implementación más simple (y más eficiente) . que sin GOTO el equivalente sería:
for(...) {
for (...) {
for (...) {
// some code
if (x) break;
}
if(x) break;
}
if(x) break;
}
En el segundo caso (que es una práctica común) hay thre e declaraciones condicionales, que obviamente son más lentas que solo tener una. Por lo tanto, por motivos de optimización/simplificación, es posible que desee utilizar las sentencias GOTO en bucles estrechamente anidados.
Y de hecho lo es en PHP5. Y lo que hace es, "simplemente ir". –