Sembra che io sia in minoranza qui, ma preferisco endforeach
, endif
ecc rispetto alle parentesi. Precisano chiaramente quale dichiarazione intendono chiudere, a differenza delle parentesi graffe (che chiudono semplicemente il blocco ancora aperto più vicino).
<? if (someCondition): ?>
imagine a bunch of code here
<? foreach ($rows as $row): ?>
imagine a bunch more code here
<? endforeach ?> (without this, PHP complains about "unexpected T_ENDIF")
and a bunch more here
<? endif ?>
<? if (someCondition) { ?>
imagine a bunch of code here
<? foreach ($rows as $row) { ?>
imagine a bunch more code here
<? } ?> (without this, PHP complains about "unexpected $end")
and a bunch more here
<? } ?>
Nel primo esempio, l'errore è praticamente limitato al blocco if
(e qualsiasi cosa ci sia dentro), e PHP lo soffoca prima (e quindi, più vicino all'errore reale). Nel secondo, PHP arriva fino alla fine dello script prima di rendersi conto che le parentesi non corrispondono. È potenzialmente un codice molto più completo per cercare una parentesi graffa mancante.
Le persone che preferiscono le parentesi graffe sono tutte come "beh, se induci il codice correttamente, le parentesi graffe sono leggibili". Il problema è che ci sono un paio di problemi:
- Non tutti sono religiosi riguardo la formattazione del codice come te. In particolare quel nuovo ragazzo che fissa il tuo codice mentre sei in vacanza.
- Le parentesi graffe sono non "semplicemente leggibili". Periodo. Non mi importa quanto ti piaccia C, C #, Java o qualsiasi altra lingua ti abbia insegnato che le parentesi graffe erano una buona cosa. Il fatto è che esistono sintassi di gran lunga migliori per le strutture di controllo - e PHP ne include effettivamente una.
- Le parentesi graffe sono punteggiatura. Un singolo carattere di punteggiatura. Spesso circondato da altri segni di punteggiatura, a questo. Sono facili da perdere. Mi sembra che il cervello cerchi effettivamente di filtrare la punteggiatura metà del tempo.
- Non so del tuo editor, ma il mio evidenzia parole chiave. Si distinguono, sono più lunghe e sono quindi più facili da individuare. Evidenzia anche le parentesi graffe e tenta anche di evidenziare la parentesi graffa ... ma non importa quanto brillantemente colori le tue parentesi graffe, esse non risaltano come una parola intera evidenziata.
- Le parentesi graffe dicono "chiudi qualcosa". Non dicono cosa chiudere. Semplicemente non possono comunicare tali informazioni per conto proprio. Si affidano a te sempre ( SEMPRE! ) indentazione "appropriatamente", e picchiano selvaggiamente qualsiasi programmatore che non lo fa (o usa spazi al posto di tabulazioni o tabulazioni invece di spazi, o qualunque sia la codifica del tuo animale domestico lo stile è). Questo o finisci per aggiungere commenti come
// end if
. E se mai ti trovi ad aggiungere commenti del genere ... perché diavolo dovresti evitare una parola chiave che fa esattamente la stessa cosa, ma può essere effettivamente verificata dall'interprete?