Collectif H2Fr

Communauté Web & Forum de Sécurité Informatique


[PHP] Les différences entre include, require, include_once et require_once

Partagez
avatar
Valter
Admin

Messages : 65
Date d'inscription : 18/08/2015
Age : 24

[PHP] Les différences entre include, require, include_once et require_once

Message par Valter le Ven 21 Aoû - 23:49

Quelles sont les différences entre les fonctions include, require, include_once et require_once de PHP ?

À première vue, ces quatre fonctions exécutent toutes la même action : inclure dans le code PHP des éléments d'un autre fichier.

Leur emploi est en tout point similaire :

include($file);
require($file);
include_once($file);
require_once($file);

Les principales différences entre include et require se manifestent dans le cas d'une erreur.

Si, pour une raison ou pour une autre le fichier ne peut pas être inclus, la fonction include va produire une erreur de type E_WARNING et continuer l'exécution du code, tandis que la fonction require va produire une erreur E_ERROR et arrêter l'exécution du code.

Et pour les fonctions include_once et require_once ?

Ça fonctionne exactement de la même manière, si ce n'est que le fichier ne sera inclus sera inclus qu'une seule fois même si la commande est lancée à différents endroits dans la page.

Par exemple :


include_once($file);

// [...]

require_once($file);

// [...]

include_once($file);


...n'incluera le fichier $file qu'une seule fois, à condition bien sûr que la variable $file ne soit pas changée au cours de l'exécution du script.


Question Et la performance ?


Niveau performance, la meilleure fonction à utiliser est souvent include qui est moins complexe et nécessite moins d'intervention que les autres.

Vous pouvez utiliser un benchmark pour tester tout ça.
avatar
Locust
Newbie
Newbie

Messages : 38
Date d'inscription : 22/08/2015
Age : 25
Localisation : Île de France

Re: [PHP] Les différences entre include, require, include_once et require_once

Message par Locust le Sam 22 Aoû - 6:07

Merci du tuto, c'était justement une des questions que je me posais !

    La date/heure actuelle est Jeu 17 Aoû - 13:20