Différence entre require, include, require_once et include_once ?

En PHP :

  • Quand dois-je utiliser require ou include ?
  • Quand dois-je utiliser require_once ou include_once ?
Solution

Il y a aussi require et include_once.

Donc votre question devrait être...

  1. Quand dois-je utiliser require ou include ?
  2. Quand dois-je utiliser require_once plutôt que require ?

La réponse à la question 1 est décrite [ici] (http://www.w3schools.com/php/php_includes.asp).

La fonction require() est identique à include(), sauf qu'elle gère les erreurs différemment. Si une erreur se produit, la fonction include() génère un avertissement, mais le script poursuit son exécution. La fonction require() génère une erreur fatale, et le script s'arrête.

La réponse à la question 2 se trouve [ici] (http://php.net/manual/en/function.require-once.php).

L'instruction require_once() est identique à require() sauf que PHP vérifiera si le fichier a déjà été inclus, et si c'est le cas, ne l'inclura pas à nouveau (require).

Commentaires (17)

Différence entre les fonctions _once et les fonctions sans _once : Sans les fonctions _once, le code sera inclus à nouveau, alors qu'avec les fonctions _once, PHP garde la trace des fichiers inclus et ne les inclura qu'une seule fois.

Différence entre require et include : Si un fichier requis n'est pas trouvé, PHP émettra une erreur fatale alors que pour l'inclusion, seul un avertissement sera émis.

Commentaires (1)

La différence réside dans l'erreur que les commandes génèrent. Avec require, le fichier que vous voulez utiliser est réellement requis et génère donc un E_ERROR s'il n'est pas trouvé.

require() est identique à include() sauf qu'en cas d'échec, il produira également une erreur fatale de niveau E_ERROR.

include ne génère qu'une erreur E_WARNING si elle échoue, ce qui est plus ou moins silencieux.

Utilisez-le donc si le fichier est nécessaire pour faire fonctionner le reste du code et que vous voulez que le script échoue si le fichier n'est pas disponible.


Pour *_once() :

include_once() peut être utilisé dans les cas où le même fichier peut être inclus et évalué plus d'une fois pendant une exécution particulière d'un script, donc dans ce cas, il peut aider à éviter des problèmes tels que les redéfinitions de fonctions, les réaffectations de valeurs de variables, etc.

La même chose s'applique à require_once() bien sûr.


Référence : [require()][1], [include_once()][2]

[1] : http://www.php.net/manual/en/function.require.php [2] : http://www.php.net/manual/en/function.include-once.php

Commentaires (2)