Ho parlato di questi argomenti nel mio blog:
I type error di php
Provo a spiegartelo sinteticamente qui.
Quello descritto è un errore di sintassi che genera un PARSE ERROR (unexpected...).
Questa tipologia di errori sono sollevati durante la lettura del codice da parte del parse php del server (compile-time) tale che questo è considerato non intepretabile e, conseguentemente, non eseguibile.
Nessuna delle istruzioni presenti sono eseguite (aldilà di un exit presente nel codice) e viene mostrato, quindi, a video l'errore.
Se invece di un PARSE ERROR vi fosse stato un altra tipologia di errore (ad esempio un FATAL ERROR) il quale viene rilevato durante l'esecuzione del file dal server (run-time), cioè quando vengono eseguite una per una le diversi istruzioni, con l'exit posto prima della riga incriminata avrebbe impedito l'esecuzione di questa e quindi la rilevazione dell'errore.
Esempio:
Codice PHP:
<?php
echo 'Prima istruzione'; // istruzione eseguita
$var = not_exists_function(); // fatal error (Call to undefined function...)
echo 'terza istruzione'; // istruzione che non sarà eseguita
?>
Ma se metti l'exit non vi sarà alcun errore
Codice PHP:
<?php
echo 'Prima istruzione'; // istruzione eseguita
exit; // interrompiamo l'esecuzione delle istruzioni successive
$var = not_exists_function(); // fatal error
echo 'terza istruzione'; // istruzione che non sarà eseguita
?>