Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème : include ou require statique ?

15 réponses
Avatar
Jean Francois Ortolo
Bonjour

J'ai un traitement répétitif ( = une boucle principale externe ) à
faire dans un script php.

Le problème, est que ce scripts php contient d'autres scripts php
inclus ( tous dans le même répertoire que le script initial ), avec
l'instruction include("script.php");

Cepndant, ces include sont contenus dans des blocs de code du script
initial, qui ne sont rencontrés à l'exécution, que dans des conditions
du type :

if($condition)
{ // bloc de code
include("script.php");
}


Comme l'exécution du script initial passera parfois avec certitude
sur ces conditions, ( parfois réalisées parfois non ), est-ce que je
peux être sûr, que ces scripts inclus, ont déjà leur code php inclus à
la compilation dans le script initial, et qu'il n'y aura pas d'effet de
bord quelconque, à faire ces includes ?

Sinon, est-ce-que des require sont ou des includes sont plus indiqués
pour que les inclusions soient "statiques", donc pour les codes inclus
donnent un script d'ensemble fixe quelles que soient les conditions
rencontrées lors de son exécution ?

Il me semble que cette question est classique, mais j'ai l'impression
que le PHP Manual est devenu depuis quelques temps, plus difficile à
comprendre.

Merci beaucoup de vos réponses.

Amicalement.

Jean François Ortolo

10 réponses

1 2
Avatar
Olivier Miakinen
Bonjour,

Le 28/05/2014 12:59, Jean Francois Ortolo a écrit :

J'ai un traitement répétitif ( = une boucle principale externe ) à
faire dans un script php.

Le problème, est que ce script php contient d'autres scripts php
inclus ( tous dans le même répertoire que le script initial ), avec
l'instruction include("script.php");



Avant d'aller plus loin, est-ce que les scripts inclus définissent
des fonctions qu'il suffit de définir une fois pour toute, ou bien
s'agit-il de code qui doit vraiment être inclus plusieurs fois ?

Si c'est le dernier cas, permets-moi de douter que ce soit une bonne
façon de procéder. Je me trompe peut-être (et je ne demande qu'à être
convaincu du contraire) mais je pense qu'il doit y avoir un moyen
d'optimiser les choses : par exemple une fonction définie dans un
fichier inclus une seule fois, puis N appels à cette fonction lors
du traitement répétitif.

Si c'est le premier cas (et je suppose que c'est bien ça), peut-être
ne connais-tu pas la fonction include_once.

Une petite doc sur Alsacreations :
<http://www.alsacreations.com/actu/lire/254-le-point-sur-la-fonction-include-php.html>


Cepndant, ces include sont contenus dans des blocs de code du script
initial, qui ne sont rencontrés à l'exécution, que dans des conditions
du type :

if($condition)
{ // bloc de code
include("script.php");
}

Comme l'exécution du script initial passera parfois avec certitude
sur ces conditions, ( parfois réalisées parfois non ), est-ce que je
peux être sûr, que ces scripts inclus, ont déjà leur code php inclus à
la compilation dans le script initial, et qu'il n'y aura pas d'effet de
bord quelconque, à faire ces includes ?



Tu veux dire, s'il y a une erreur dans l'un des scripts, le sauras-tu
même si l'inclusion est dans un if dont la condition est fausse ? Si
j'en crois la doc, c'est non pour include mais oui pour require :

<http://www.apc.univ-paris7.fr/~revenu/DocPhp/php/function.require.html>
Contrairement à include(), require() va toujours lire dans le fichier
cible, même si la ligne n'est jamais exécutée. Si vous souhaitez une
inclusion conditionnelle, utilisez include(). La condition ne va jamais
affecter require(). Cependant, si la ligne de require() n'est jamais
exécutée, le code du fichier ne le sera jamais non plus.
</>

Sinon, est-ce-que des require sont ou des includes sont plus indiqués
pour que les inclusions soient "statiques", donc pour les codes inclus
donnent un script d'ensemble fixe quelles que soient les conditions
rencontrées lors de son exécution ?

Il me semble que cette question est classique, mais j'ai l'impression
que le PHP Manual est devenu depuis quelques temps, plus difficile à
comprendre.



Je ne suis pas sûr moi-même d'avoir compris ta question... ;-)

N'hésite pas à reformuler si jamais j'ai compris de travers.

Cordialement,
--
Olivier Miakinen
Avatar
Denis Beauregard
Le Wed, 28 May 2014 12:59:24 +0200, Jean Francois Ortolo
écrivait dans
fr.comp.lang.php:


Bonjour

J'ai un traitement répétitif ( = une boucle principale externe ) à
faire dans un script php.

Le problème, est que ce scripts php contient d'autres scripts php
inclus ( tous dans le même répertoire que le script initial ), avec
l'instruction include("script.php");



Je ne comprends pas la question.

Si c'est pour inclure une seule fois un fichier parce qu'on y définit
des fonctions, il suffit d'utiliser cette structure :

include_once('script.php');


Denis
Avatar
Jean Francois Ortolo
Le 28/05/2014 23:45, Olivier Miakinen a écrit :
Bonjour,

Le 28/05/2014 12:59, Jean Francois Ortolo a écrit :

J'ai un traitement répétitif ( = une boucle principale externe ) à
faire dans un script php.

Le problème, est que ce script php contient d'autres scripts php
inclus ( tous dans le même répertoire que le script initial ), avec
l'instruction include("script.php");



Avant d'aller plus loin, est-ce que les scripts inclus définissent
des fonctions qu'il suffit de définir une fois pour toute, ou bien
s'agit-il de code qui doit vraiment être inclus plusieurs fois ?





Bonjour Monsieur

En fait, j'ai changé mon problème, en utilisant directement le script
en question ( en y incorporant la boucle externe ).

Cependant, dans ce script, il y a des include dans le code du script,
mais les portions de code dans lesquels ces include apparaissent, sont
dans des conditions if-else.

Mais, le site AlsaCreations, dont vous me donnez l'url, dit qu'un
include est strictement équivalent à un copié-collé du code du script
inclus, dans le script ou figure l'include.

Donc... Même si ces include sont dans des portions de code ( du
script externe ), qui peuvent être rencontrés plusieurs fois *à
l'exécution du script* , chaque includes, équivalents à des
copiés-collé, seront seulement inclus ( dans le code source du script ),
une seule fois par include, et non pas autant de fois qu'ils seront
rencontrés lors de l'exécution ?

Donc... Les include sont exécutés à la compilation du script externe
, et non pas à son exécution ?

Merci beaucoup de me dire si tout n'est pas clair dans ma demande.

En passant, aucun de mes include ne sont dans une fonction.

Merci beaucoup pour votre réponse.

Jean François Ortolo



Si c'est le dernier cas, permets-moi de douter que ce soit une bonne
façon de procéder. Je me trompe peut-être (et je ne demande qu'à être
convaincu du contraire) mais je pense qu'il doit y avoir un moyen
d'optimiser les choses : par exemple une fonction définie dans un
fichier inclus une seule fois, puis N appels à cette fonction lors
du traitement répétitif.

Si c'est le premier cas (et je suppose que c'est bien ça), peut-être
ne connais-tu pas la fonction include_once.

Une petite doc sur Alsacreations :
<http://www.alsacreations.com/actu/lire/254-le-point-sur-la-fonction-include-php.html>


Cepndant, ces include sont contenus dans des blocs de code du script
initial, qui ne sont rencontrés à l'exécution, que dans des conditions
du type :

if($condition)
{ // bloc de code
include("script.php");
}

Comme l'exécution du script initial passera parfois avec certitude
sur ces conditions, ( parfois réalisées parfois non ), est-ce que je
peux être sûr, que ces scripts inclus, ont déjà leur code php inclus à
la compilation dans le script initial, et qu'il n'y aura pas d'effet de
bord quelconque, à faire ces includes ?



Tu veux dire, s'il y a une erreur dans l'un des scripts, le sauras-tu
même si l'inclusion est dans un if dont la condition est fausse ? Si
j'en crois la doc, c'est non pour include mais oui pour require :

<http://www.apc.univ-paris7.fr/~revenu/DocPhp/php/function.require.html>
Contrairement à include(), require() va toujours lire dans le fichier
cible, même si la ligne n'est jamais exécutée. Si vous souhaitez une
inclusion conditionnelle, utilisez include(). La condition ne va jamais
affecter require(). Cependant, si la ligne de require() n'est jamais
exécutée, le code du fichier ne le sera jamais non plus.
</>

Sinon, est-ce-que des require sont ou des includes sont plus indiqués
pour que les inclusions soient "statiques", donc pour les codes inclus
donnent un script d'ensemble fixe quelles que soient les conditions
rencontrées lors de son exécution ?

Il me semble que cette question est classique, mais j'ai l'impression
que le PHP Manual est devenu depuis quelques temps, plus difficile à
comprendre.



Je ne suis pas sûr moi-même d'avoir compris ta question... ;-)

N'hésite pas à reformuler si jamais j'ai compris de travers.

Cordialement,

Avatar
Jean Francois Ortolo
Le 28/05/2014 23:45, Olivier Miakinen a écrit :
Bonjour,

Le 28/05/2014 12:59, Jean Francois Ortolo a écrit :

J'ai un traitement répétitif ( = une boucle principale externe ) à
faire dans un script php.

Le problème, est que ce script php contient d'autres scripts php
inclus ( tous dans le même répertoire que le script initial ), avec
l'instruction include("script.php");



Avant d'aller plus loin, est-ce que les scripts inclus définissent
des fonctions qu'il suffit de définir une fois pour toute, ou bien
s'agit-il de code qui doit vraiment être inclus plusieurs fois ?

Si c'est le dernier cas, permets-moi de douter que ce soit une bonne
façon de procéder. Je me trompe peut-être (et je ne demande qu'à être
convaincu du contraire) mais je pense qu'il doit y avoir un moyen
d'optimiser les choses : par exemple une fonction définie dans un
fichier inclus une seule fois, puis N appels à cette fonction lors
du traitement répétitif.

Si c'est le premier cas (et je suppose que c'est bien ça), peut-être
ne connais-tu pas la fonction include_once.

Une petite doc sur Alsacreations :
<http://www.alsacreations.com/actu/lire/254-le-point-sur-la-fonction-include-php.html>


Cepndant, ces include sont contenus dans des blocs de code du script
initial, qui ne sont rencontrés à l'exécution, que dans des conditions
du type :

if($condition)
{ // bloc de code
include("script.php");
}

Comme l'exécution du script initial passera parfois avec certitude
sur ces conditions, ( parfois réalisées parfois non ), est-ce que je
peux être sûr, que ces scripts inclus, ont déjà leur code php inclus à
la compilation dans le script initial, et qu'il n'y aura pas d'effet de
bord quelconque, à faire ces includes ?



Tu veux dire, s'il y a une erreur dans l'un des scripts, le sauras-tu
même si l'inclusion est dans un if dont la condition est fausse ? Si
j'en crois la doc, c'est non pour include mais oui pour require :

<http://www.apc.univ-paris7.fr/~revenu/DocPhp/php/function.require.html>
Contrairement à include(), require() va toujours lire dans le fichier
cible, même si la ligne n'est jamais exécutée. Si vous souhaitez une
inclusion conditionnelle, utilisez include(). La condition ne va jamais
affecter require(). Cependant, si la ligne de require() n'est jamais
exécutée, le code du fichier ne le sera jamais non plus.
</>





Rebonjour Monsieur

Celà semble indiquer, que la fonction require() est ce que je
recherche : Une inclusion non conditionnelle ( = faite à la compilation
), et le code inclus figure dans tous les cas à l'endroit où il a été
inclus, même si la condition ne permet pas que le code inclus soit
rencontré à l'exécution.

Donc... La fonction require() permet une telle inclusion "statique",
c'est-à-dire à la compilation.

Respectueusement.

Jean François Ortolo



Sinon, est-ce-que des require sont ou des includes sont plus indiqués
pour que les inclusions soient "statiques", donc pour les codes inclus
donnent un script d'ensemble fixe quelles que soient les conditions
rencontrées lors de son exécution ?

Il me semble que cette question est classique, mais j'ai l'impression
que le PHP Manual est devenu depuis quelques temps, plus difficile à
comprendre.



Je ne suis pas sûr moi-même d'avoir compris ta question... ;-)

N'hésite pas à reformuler si jamais j'ai compris de travers.

Cordialement,

Avatar
Otomatic
Jean Francois Ortolo
écrivait :

Donc... La fonction require() permet une telle inclusion "statique",
c'est-à-dire à la compilation.



Désolé, mais les fonctions include() et require() sont strictement
identiques à une seul exception près au niveau de la gestion des
erreurs.

L'instruction de langage include inclut et exécute le fichier spécifié
en argument.

Cette documentation s'applique aussi à l'instruction de langage require.

Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun
n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas
trouvé dans l' include_path, include vérifiera dans le dossier du script
appelant et dans le dossier de travail courant avant d'échouer.
L'instruction include enverra une erreur de type warning si elle ne peut
trouver le fichier; ce comportement est différent de require, qui
enverra une erreur de niveau fatal.

Pourquoi n'allez-vous pas lire les documentations de PHP sur le sujet :
http://fr2.php.net/manual/fr/function.include.php

--
Ce n'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont forcément raison. Coluche
Avatar
Jean Francois Ortolo
Le 29/05/2014 17:30, Otomatic a écrit :
Jean Francois Ortolo
écrivait :

Donc... La fonction require() permet une telle inclusion "statique",
c'est-à-dire à la compilation.



Désolé, mais les fonctions include() et require() sont strictement
identiques à une seul exception près au niveau de la gestion des
erreurs.

L'instruction de langage include inclut et exécute le fichier spécifié
en argument.

Cette documentation s'applique aussi à l'instruction de langage require.

Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun
n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas
trouvé dans l' include_path, include vérifiera dans le dossier du script
appelant et dans le dossier de travail courant avant d'échouer.
L'instruction include enverra une erreur de type warning si elle ne peut
trouver le fichier; ce comportement est différent de require, qui
enverra une erreur de niveau fatal.

Pourquoi n'allez-vous pas lire les documentations de PHP sur le sujet :
http://fr2.php.net/manual/fr/function.include.php





Bonjour Monsieur

J'ai mieux que le PHP Manual, ( que j'ai déjà lu je m'empresse de le
dire ).

Le commencement de la page dont Monsieur Miakinen me donne l'url (
Université Paris V ) :

----------------------------------------------------------------------

require() n'est pas vraiment une fonction PHP : c'est plus une
instruction du langage. Elle ne fonctionne pas comme les fonctions
standards. Par exemple, require() est indépendante des structures de
contrôle (cela ne sert à rien de la placer dans une condition, elle sera
toujours exécutée). De plus, elle ne retourne aucune valeur. Lire une
valeur retournée par un require() retourne une erreur d'analyse.

Contrairement à include(), require() va toujours lire dans le fichier
cible, même si la ligne n'est jamais exécutée. Si vous souhaitez une
inclusion conditionnelle, utilisez include(). La condition ne va jamais
affecter require(). Cependant, si la ligne de require() n'est jamais
exécutée, le code du fichier ne le sera jamais non plus.

Les boucles n'affectent pas le comportement de require(). Même si le
code contenu dans le fichier source est appelé dans la boucle, require()
n'est exécuté qu'une fois.

----------------------------------------------------------------------

Merci à Monsieur Miakinen de confirmer ce que je disais.

Respectueusement.

Jean François Ortolo
Avatar
Pierre Maurette
Jean Francois Ortolo :
Le 29/05/2014 17:30, Otomatic a écrit :
Jean Francois Ortolo
écrivait :

Donc... La fonction require() permet une telle inclusion "statique",
c'est-à-dire à la compilation.



Désolé, mais les fonctions include() et require() sont strictement
identiques à une seul exception près au niveau de la gestion des
erreurs.

L'instruction de langage include inclut et exécute le fichier spécifié
en argument.

Cette documentation s'applique aussi à l'instruction de langage require.

Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun
n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas
trouvé dans l' include_path, include vérifiera dans le dossier du script
appelant et dans le dossier de travail courant avant d'échouer.
L'instruction include enverra une erreur de type warning si elle ne peut
trouver le fichier; ce comportement est différent de require, qui
enverra une erreur de niveau fatal.

Pourquoi n'allez-vous pas lire les documentations de PHP sur le sujet :
http://fr2.php.net/manual/fr/function.include.php





Bonjour Monsieur

J'ai mieux que le PHP Manual, ( que j'ai déjà lu je m'empresse de le dire
).

Le commencement de la page dont Monsieur Miakinen me donne l'url (
Université Paris V ) :

----------------------------------------------------------------------

require() n'est pas vraiment une fonction PHP : c'est plus une instruction du
langage. Elle ne fonctionne pas comme les fonctions standards. Par exemple,
require() est indépendante des structures de contrôle (cela ne sert à rien de
la placer dans une condition, elle sera toujours exécutée). De plus, elle ne
retourne aucune valeur. Lire une valeur retournée par un require() retourne
une erreur d'analyse.

Contrairement à include(), require() va toujours lire dans le fichier
cible, même si la ligne n'est jamais exécutée. Si vous souhaitez une
inclusion conditionnelle, utilisez include(). La condition ne va jamais
affecter require(). Cependant, si la ligne de require() n'est jamais
exécutée, le code du fichier ne le sera jamais non plus.

Les boucles n'affectent pas le comportement de require(). Même si le code
contenu dans le fichier source est appelé dans la boucle, require() n'est
exécuté qu'une fois.

----------------------------------------------------------------------



Vous devriez pourtant faire confiance au manuel. Le texte en référence
me semble bien être un tissu d'âneries. Déjà écrire require() avec
parenthèses pour préciser que ce n'est "pas vraiment" une fonction,
alors que simplement *ce n'est pas* une fonction...
Tout le reste est soit incompréhensible soit faux. Ceci dit, je ne suis
pas expert PHP, je ne connais rien des très anciennes versions et un
truc doit m'échapper.

--
Pierre Maurette
Avatar
Jean Francois Ortolo
Le 31/05/2014 09:38, Pierre Maurette a écrit :
Jean Francois Ortolo :
Le 29/05/2014 17:30, Otomatic a écrit :
Jean Francois Ortolo
écrivait :

Donc... La fonction require() permet une telle inclusion "statique",
c'est-à-dire à la compilation.



Désolé, mais les fonctions include() et require() sont strictement
identiques à une seul exception près au niveau de la gestion des
erreurs.

L'instruction de langage include inclut et exécute le fichier spécifié
en argument.

Cette documentation s'applique aussi à l'instruction de langage require.

Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun
n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas
trouvé dans l' include_path, include vérifiera dans le dossier du script
appelant et dans le dossier de travail courant avant d'échouer.
L'instruction include enverra une erreur de type warning si elle ne peut
trouver le fichier; ce comportement est différent de require, qui
enverra une erreur de niveau fatal.

Pourquoi n'allez-vous pas lire les documentations de PHP sur le sujet :
http://fr2.php.net/manual/fr/function.include.php





Bonjour Monsieur

J'ai mieux que le PHP Manual, ( que j'ai déjà lu je m'empresse de
le dire ).

Le commencement de la page dont Monsieur Miakinen me donne l'url
( Université Paris V ) :

----------------------------------------------------------------------

require() n'est pas vraiment une fonction PHP : c'est plus une
instruction du langage. Elle ne fonctionne pas comme les fonctions
standards. Par exemple, require() est indépendante des structures de
contrôle (cela ne sert à rien de la placer dans une condition, elle
sera toujours exécutée). De plus, elle ne retourne aucune valeur. Lire
une valeur retournée par un require() retourne une erreur d'analyse.

Contrairement à include(), require() va toujours lire dans le
fichier cible, même si la ligne n'est jamais exécutée. Si vous
souhaitez une inclusion conditionnelle, utilisez include(). La
condition ne va jamais affecter require(). Cependant, si la ligne de
require() n'est jamais exécutée, le code du fichier ne le sera jamais
non plus.

Les boucles n'affectent pas le comportement de require(). Même si le
code contenu dans le fichier source est appelé dans la boucle,
require() n'est exécuté qu'une fois.

----------------------------------------------------------------------



Vous devriez pourtant faire confiance au manuel. Le texte en référence
me semble bien être un tissu d'âneries. Déjà écrire require() avec
parenthèses pour préciser que ce n'est "pas vraiment" une fonction,
alors que simplement *ce n'est pas* une fonction...
Tout le reste est soit incompréhensible soit faux. Ceci dit, je ne suis
pas expert PHP, je ne connais rien des très anciennes versions et un
truc doit m'échapper.





Bonjour Monsieur

Je n'ai rien à dire à ce que vous dites, si ce n'est que ce n'est pas
très précis. ;)

Le PHP Manual non plus d'ailleurs. Il n'est plus ce que c'était.

Ce type d'informations ne s'y trouve pas.

Il s'agit de l'Université Paris 7 ( Paris Diderot ), et non pas Paris
V. Pardonnez-moi pour mon "lapsus".


Peut-être Monsieur Miakinen pourra-t-il m'éclairer par rapport au
contenu de cette page ? ;)

Il est bien indiqué, que le require(), équivaut à un copié-collé du
code, si celà devait en,lever d'un doute...

Par ailleurs, si vous avez des arguments *techniques*, merci de m'en
faire part ?

Bien amicalement.

Jean François Ortolo
Avatar
Otomatic
Jean Francois Ortolo
écrivait :

Le commencement de la page dont Monsieur Miakinen me donne l'url (
Université Paris V ) :


Date de près de dix ans.
C'était peut-être (Et j'en doute fortement) vrai du temps de PHP 3.

- D'une part, je ne me base QUE sur les documentations officielles PHP
et non sur tout ce qu'on peut trouver comme cochoncetées sur tout un tas
de sites, même si ça provient d'une université.
- D'autre part, rien ne vous empêche d'effectuer vous-même des essais
pour confirmer ou infirmer ce que vous lisez ici ou là.

--------------------------------------
Essais effectués avec un script essais_include.php
<?php
$pour_test = 22;

echo "<p>Include et Require conditionnels if ".$pour_test." = 12</p>n";
if($pour_test == 12) {
include('inc_toto_1.php');
require('inc_toto_1.php');
include('inc_toto_2.php');
require('inc_toto_2.php');
include('inc_toto_3.php');
require('inc_toto_3.php');
}
echo "<p>Fin test conditionnel</p>n";

echo "<p>Include et Require conditionnels if ".$pour_test." = 22</p>n";
if($pour_test == 22) {
include('inc_toto_1.php');
require('inc_toto_1.php');
include('inc_toto_2.php');
require('inc_toto_2.php');
include('inc_toto_3.php');
require('inc_toto_3.php');
}
echo "<p>Fin test conditionnel</p>n";
?>

Les trois fichiers inc_toto_1, 2 et 3 contiennent :
<?php
$fichier = basename(__FILE__);
echo "<p>Fichier ".$fichier."</p>n";
?>

Voilà le résultat obtenu :

Include et Require conditionnels if 22 == 12
Fin test conditionnel

Include et Require conditionnels if 22 == 22
Fichier inc_toto_1.php
Fichier inc_toto_1.php
Fichier inc_toto_2.php
Fichier inc_toto_2.php
Fichier inc_toto_3.php
Fichier inc_toto_3.php
Fin test conditionnel

Exactement le même résultat avec PHP 5.3.28, PHP 5.4.29, PHP 5.5.13 et
PHP 5.6.b3

Donc, comme le dit si justement la documentation PHP, include et require
se comportent EXACTEMENT de la même manière sauf pour la gestion des
erreurs.

RTFM & CQFD
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont forcément raison. Coluche
Avatar
Jean Francois Ortolo
Le 31/05/2014 10:40, Otomatic a écrit :
Jean Francois Ortolo
écrivait :

Le commencement de la page dont Monsieur Miakinen me donne l'url (
Université Paris V ) :


Date de près de dix ans.
C'était peut-être (Et j'en doute fortement) vrai du temps de PHP 3.

- D'une part, je ne me base QUE sur les documentations officielles PHP
et non sur tout ce qu'on peut trouver comme cochoncetées sur tout un tas
de sites, même si ça provient d'une université.
- D'autre part, rien ne vous empêche d'effectuer vous-même des essais
pour confirmer ou infirmer ce que vous lisez ici ou là.

--------------------------------------
Essais effectués avec un script essais_include.php
<?php
$pour_test = 22;

echo "<p>Include et Require conditionnels if ".$pour_test." = > 12</p>n";
if($pour_test == 12) {
include('inc_toto_1.php');
require('inc_toto_1.php');
include('inc_toto_2.php');
require('inc_toto_2.php');
include('inc_toto_3.php');
require('inc_toto_3.php');
}
echo "<p>Fin test conditionnel</p>n";

echo "<p>Include et Require conditionnels if ".$pour_test." = > 22</p>n";
if($pour_test == 22) {
include('inc_toto_1.php');
require('inc_toto_1.php');
include('inc_toto_2.php');
require('inc_toto_2.php');
include('inc_toto_3.php');
require('inc_toto_3.php');
}
echo "<p>Fin test conditionnel</p>n";
?>

Les trois fichiers inc_toto_1, 2 et 3 contiennent :
<?php
$fichier = basename(__FILE__);
echo "<p>Fichier ".$fichier."</p>n";
?>

Voilà le résultat obtenu :

Include et Require conditionnels if 22 == 12
Fin test conditionnel

Include et Require conditionnels if 22 == 22
Fichier inc_toto_1.php
Fichier inc_toto_1.php
Fichier inc_toto_2.php
Fichier inc_toto_2.php
Fichier inc_toto_3.php
Fichier inc_toto_3.php
Fin test conditionnel

Exactement le même résultat avec PHP 5.3.28, PHP 5.4.29, PHP 5.5.13 et
PHP 5.6.b3

Donc, comme le dit si justement la documentation PHP, include et require
se comportent EXACTEMENT de la même manière sauf pour la gestion des
erreurs.

RTFM & CQFD





Bonjour Monsieur

Si je comprend bien, vous assimilez l'exécution du code contenu dans
ces fichiers inclus, à l'inclusion des-dits fichiers ?

Et vous constatez que dans les cas où l condition n'est pas réalisée,
le code n'apparaît pas ?

C'est précisément ce que dit la page en question.

Voir la fin de mon entière citation. ;)

A plus.

Jean François Ortolo
1 2