Penso che questo codice:
if(file_exists("amodule.inc.php"))
require_once("amodule.inc.php");
è fuorviante a causa dell'uso di require_once.
Penso che - per mantenere la logica e la "formulazione" in linea - "include_once" sarebbe appropriato (dove ci sono un certo numero di argomenti per non usare il "se" del tutto ma vorrei concentrarmi su "richiedere vs include ").
Per quanto riguarda la mia comprensione, l'unica differenza tra "require" e "include" è che "require ha una conseguenza (halt) se il file non esiste vs. include procede con solo un avvertimento.
Ma, nell'esempio, se il file non esiste, il codice require_once non verrà comunque eseguito. Quindi "richiede" fuorvia dal mio punto di vista.
Da una vista superficiale, si potrebbe argomentare che il codice sopra usando require_once e
if(file_exists("amodule.inc.php"))
include_once("amodule.inc.php");
sono "identici" quelli che, dal mio punto di vista, non lo sono. Perché:
Un'analisi "approssimativa" (come un controllo automatico di un progetto) lancia un messaggio, che "amodule.inc.php" è un file di progetto vitale, che il codice mostra, non lo è.
Inoltre, in un caso (non molto probabile) che tra l'esecuzione dell'istruzione "if" e l'istruzione require_once, il file possa essere cancellato. Poi, ancora peggio, il codice NON verrebbe eseguito come previsto (da eseguire senza carico), ma arrendersi.
Quindi, come vorresti che ragazzi là fuori discutessero?