È possibile omettere il punto e virgola in un tag.
Esempio:
<table>
<th><td>Name</td><td>Email</td>
<? foreach ($receivers as $receiver): ?>
<tr>
<td><?= $receiver->name ?></td>
<td><?= $recevier->email ?></td>
</tr>
<? endforeach ?>
</table>
Nota <? endforeach ?>
senza punto e virgola dopo endforeach
. La documentazione PHP dice:
The closing tag of a block of PHP code automatically implies a semicolon; you do not need to have a semicolon terminating the last line of a PHP block.
Perché sto sollevando questo argomento?
Attualmente io e un mio amico lavoriamo in un progetto PHP proprietario con MVC (model-view-controller). Per la vista ho valutato alcuni motori di template PHP come Smarty, Moustache e persino progettato il mio motore di template sviluppato internamente. Ma quando leggo che PHP è un motore di template in sé qualcosa è andato « click » nella mia testa. Perché non accetti semplicemente nel team di utilizzare un sottoinsieme limitato di PHP come motore di template? E avere molte recensioni di codice per mantenere le regole?
E questo sottoinsieme potrebbe apparire come questo:
- Utilizza solo tag brevi
<?
,<?=
e?>
- Utilizza solo espressioni semplici senza effetti collaterali, in particolare non assegna variabili
- Utilizza solo
if
,foreach
einclude
per istruzioni - Utilizza solo la sintassi alternativa per le strutture di controllo
- Hai solo una istruzione in un tag ogni
Questo è il contesto in cui omettiamo il punto e virgola finale, vale a dire <? endforeach ?>
, <? endif ?>
e <? include("list-contents.php") ?>
.
Tuttavia, leggo spesso che l'omissione del punto e virgola è una cattiva pratica. Perché? È una cattiva pratica?
Sono felice che PHP consenta di omettere il punto e virgola finale perché questo riduce al minimo l'ingombro visivo nei file modello. Dovrebbero sembrare per lo più come file HTML con solo piccoli frammenti PHP qua e là. L'esempio sopra è quello che mi sto adoperando.
Cosa ne pensi di questo? Se sei contro: perché? Se lo sostieni: perché sarebbe una buona idea? Cosa dovrei dire al mio partner se mi sta riferendo del testo contro l'omissione del punto e virgola?
Esegui il tuo parere con fatti, riferimenti o la tua esperienza.