Tag di chiusura (?) su file PHP?

16

Alcune persone giurano chiudendo i loro file PHP con ?> , alcuni dicono che è più ottimizzato per lasciarlo fuori.

So che non è essenziale averlo lì, mi chiedo solo quali sono i pro e i contro di questo, e quali sono le migliori pratiche.

    
posta Steve Robbins 04.07.2011 - 20:25
fonte

3 risposte

26

Non è tanto una questione di prestazioni - l'analisi del trailing ?> è banale e non farà alcuna differenza apprezzabile, a meno che non includa un milione di file al secondo.

IIRC, php.net consiglia di NON aggiungere ?> , e le ragioni vanno in questo modo:

  • non è necessario
  • è facile aggiungere accidentalmente spazi vuoti significativi dopo ?> , che verrà restituito al client, che a sua volta può portare a oscuri "header già inviati" errori (questo accade quando un file incluso contiene spazi vuoti, e tu prova a impostare un'intestazione dopo aver incluso quel file)
risposta data 04.07.2011 - 21:00
fonte
12

No, hanno torto.

> è opzionale in PHP alla fine di un file. E troverai una buona ragione per questo. Il più importante è che uno spazio vuoto alla fine di un file non ti impedirà di inviare intestazioni. Questo è un bug difficile da individuare perché puoi trovarlo in qualsiasi file ovunque.

Il solito modo di fare è mettere un tag di chiusura quando PHP è mischiato con HTML e non lo mette per i file PHP puri. È persino uno standard di codifica del framework ZEND: link e molti altri.

Ottimizzato significa che il codice funziona più velocemente. È facile dimostrare che hanno torto. Guarda il codice e scopri che ti stanno dicendo cazzate.

    
risposta data 04.07.2011 - 21:00
fonte
4

Penso che sia raccomandato ai neofiti di evitare di aggiungerlo in modo che non causino l'invio accidentale di caratteri di ritorno a capo extra. Dal momento che non è essenziale averlo come hai menzionato, penso che il ragionamento generale sia che è meglio lasciarlo fuori per evitare errori.

Non penso ci sia alcuna "ottimizzazione" implicata con esso.

Ti indicherei qui: link e qui: link

    
risposta data 04.07.2011 - 21:01
fonte

Leggi altre domande sui tag