Es posible omitir el punto y coma que termina en una etiqueta.
Ejemplo:
<table>
<th><td>Name</td><td>Email</td>
<? foreach ($receivers as $receiver): ?>
<tr>
<td><?= $receiver->name ?></td>
<td><?= $recevier->email ?></td>
</tr>
<? endforeach ?>
</table>
Tenga en cuenta el <? endforeach ?>
sin punto y coma después endforeach
. La documentación de PHP dice:
La etiqueta de cierre de un bloque de código PHP implica automáticamente un punto y coma; no necesita tener un punto y coma que termina la última línea de un bloque PHP.
¿Por qué estoy trayendo este tema?
Actualmente, yo y un amigo mío trabajamos en un proyecto PHP propietario con MVC (model-view-controller). Para la vista, evalué algunos motores de plantillas PHP como Smarty, Moustache e incluso diseñé mi propio motor de plantillas propio. Pero cuando leí que PHP es un motor de plantillas en sí mismo, algo hizo « clic » en mi cabeza. ¿Por qué no simplemente aceptar en el equipo utilizar un subconjunto limitado de PHP como motor de plantillas? ¿Y tener muchas revisiones de código para mantener las reglas?
Y este subconjunto podría verse así:
- Utilice las etiquetas solamente cortos
<?
,<?=
y?>
- Use solo expresiones simples sin efectos secundarios, especialmente no asigne variables
- Usar solo
if
,foreach
yinclude
para declaraciones - Use solo la sintaxis alternativa para las estructuras de control
- Tener solo una declaración en una etiqueta cada
Este es el contexto en el que estamos omitiendo el punto y coma de terminación, es decir <? endforeach ?>
, para <? endif ?>
y <? include("list-contents.php") ?>
.
Sin embargo, leo a menudo que omitir la terminación de punto y coma es una mala práctica. ¿Por qué? ¿Es una mala práctica en absoluto?
Estoy feliz de que PHP permita omitir el punto y coma de terminación porque esto minimiza el desorden visual en los archivos de plantilla. Deberían verse principalmente como archivos HTML con solo pequeños fragmentos de PHP aquí y allá. El ejemplo anterior es por lo que me estoy esforzando.
¿Qué piensas sobre esto? Si estás en contra: ¿por qué? Si lo apoya: ¿Por qué sería una buena idea? ¿Qué debería decirle a mi compañero si me está refiriendo algún texto en contra de omitir el punto y coma?
Por favor respalde su opinión con hechos, referencias o su propia experiencia.