require déclenche une erreur fatale si le fichier n'est pas trouvé, donc ton script ne continue pas de s'exécuter avec du code manquant, ce qui empêche de voir 40 erreurs successives.
require est fait pour n'appeller qu'une seule fois le fichier, nickel pour charger une librairie. Include, lui, permet d'inclure plusieurs fois le même fichier, ça peut être pratique pour inclure un fichier de vue contenant la vue pour un post par exemple, et si tu dois afficher 5 posts tu mets l'include dans une boucle. perso je suis pas fan de cette méthode.
avec require, si le fichier à déjà été appelé, la demande est ignorée.
enfin, les '_once' permettent de ne pas avoir d'erreur si le fichier appelé contient une définition de fonction, de constante(pas sur), ou de classe. sinon tu aurais "fonction déjà définie dans tel fichier, à telle ligne, errrrrror".
mais si tu suis ma logique, les includes ne sont pas censés contenir des définitions. quant au require, si le fichier était vraiment ignoré lors d'un second appel, il n'y aurait pas besoin du '_once'. encore un illogisme de php peut-être, ensuite tout ce que je dis je l'ai lu sur la doc mais je n'ai jamais vraiment fait de tests.
edit@ter rowan : il te faut mettre require, et pas include, sinon, si le fichier a.php est manquant, tu auras une belle erreur d'impossibilité d'hériter. bon, ceci dit, dans l'autre cas tu auras une belle erreur de fichier manquant.
-----------------------------
bon, après être allé lire la doc, require balance une erreur de compilation et pas une fatal error.
par contre, même si le fichier n'est pas inclus une seconde fois avec require, il est quand même évalué, d'où la nécéssité du '_once'.
require est fait pour n'appeller qu'une seule fois le fichier, nickel pour charger une librairie. Include, lui, permet d'inclure plusieurs fois le même fichier, ça peut être pratique pour inclure un fichier de vue contenant la vue pour un post par exemple, et si tu dois afficher 5 posts tu mets l'include dans une boucle. perso je suis pas fan de cette méthode.
avec require, si le fichier à déjà été appelé, la demande est ignorée.
enfin, les '_once' permettent de ne pas avoir d'erreur si le fichier appelé contient une définition de fonction, de constante(pas sur), ou de classe. sinon tu aurais "fonction déjà définie dans tel fichier, à telle ligne, errrrrror".
mais si tu suis ma logique, les includes ne sont pas censés contenir des définitions. quant au require, si le fichier était vraiment ignoré lors d'un second appel, il n'y aurait pas besoin du '_once'. encore un illogisme de php peut-être, ensuite tout ce que je dis je l'ai lu sur la doc mais je n'ai jamais vraiment fait de tests.
edit@ter rowan : il te faut mettre require, et pas include, sinon, si le fichier a.php est manquant, tu auras une belle erreur d'impossibilité d'hériter. bon, ceci dit, dans l'autre cas tu auras une belle erreur de fichier manquant.
-----------------------------
bon, après être allé lire la doc, require balance une erreur de compilation et pas une fatal error.
par contre, même si le fichier n'est pas inclus une seconde fois avec require, il est quand même évalué, d'où la nécéssité du '_once'.