endforeach
La palabra clave "endforeach" es una estructura de control en PHP que marca el final de un bucle "foreach". Explora su sintaxis y uso en este artículo.
La palabra clave endforeach de PHP
endforeach es la palabra clave de cierre para la sintaxis alternativa del foreach loop en PHP. En lugar de envolver el cuerpo del bucle entre llaves, se abre el bloque con dos puntos (:) y se cierra con endforeach;. El comportamiento es idéntico a la versión con llaves — solo cambia la puntuación.
Esta página cubre la sintaxis, cuándo usarla, ejemplos prácticos y los errores comunes (mezcla de sintaxis, referencias) que suelen confundir a los desarrolladores.
Sintaxis
Se reemplaza la { de apertura por : y la } de cierre por endforeach;:
foreach ($array as $value):
// code to be executed
endforeach;También funciona con la forma clave/valor:
foreach ($array as $key => $value):
// code to be executed
endforeach;Ambas son funcionalmente idénticas a la sintaxis estándar con llaves:
foreach ($array as $value) {
// code to be executed
}Cuándo usarla
La sintaxis alternativa existe principalmente para plantillas — archivos que mezclan PHP y HTML. Una } de cierre puede ser difícil de asociar con su llave de apertura cuando hay HTML en medio, mientras que endforeach; se explica por sí sola:
<ul>
<?php foreach ($products as $product): ?>
<li><?= htmlspecialchars($product) ?></li>
<?php endforeach; ?>
</ul>En código PHP puro (sin HTML incrustado), la mayoría de los equipos prefieren la sintaxis con llaves. Elige un estilo por archivo y mantenlo de forma coherente.
Ejemplos
Ejemplos de endforeach en PHP
<?php
// Example 1
$array = ["apple", "banana", "cherry"];
foreach ($array as $value):
echo $value . PHP_EOL;
endforeach;
// Output:
// apple
// banana
// cherry
// Example 2
$array = ["a" => "apple", "b" => "banana", "c" => "cherry"];
foreach ($array as $key => $value):
echo $key . " = " . $value . PHP_EOL;
endforeach;
// Output:
// a = apple
// b = banana
// c = cherryEl Ejemplo 1 itera sobre una lista simple e imprime cada valor; el Ejemplo 2 itera sobre un array asociativo, capturando tanto $key como $value.
Errores comunes
No mezcles las dos sintaxis. Si abres con :, debes cerrar con endforeach; — y si abres con {, debes cerrar con }. Mezclarlas produce un error de análisis:
// Parse error: this is invalid
foreach ($array as $value): // opens with a colon
echo $value;
} // ...but tries to close with a braceRecuerda el punto y coma. Es endforeach;, no endforeach. Olvidar el punto y coma es un error tipográfico frecuente que provoca un error de sintaxis.
El problema con las referencias también aplica aquí. Al igual que con cualquier foreach, si iteras por referencia (as &$value), la variable $value seguirá apuntando al último elemento después de que el bucle termine. Siempre usa unset($value) al terminar para evitar errores inesperados:
$array = [1, 2, 3];
foreach ($array as &$value):
$value *= 2;
endforeach;
unset($value); // break the reference
print_r($array);
// Output:
// Array ( [0] => 2 [1] => 4 [2] => 6 )Palabras clave relacionadas con la sintaxis alternativa
endforeach pertenece a una familia de terminadores de sintaxis alternativa. Cada bucle y condicional tiene el suyo:
Para el bucle en sí, consulta el capítulo completo sobre el foreach loop.
Conclusión
endforeach cierra la forma con dos puntos de un bucle foreach. Úsala en plantillas donde PHP y HTML están intercalados, mantén la sintaxis coherente dentro de un bloque y recuerda el punto y coma final.