Maison >développement back-end >tutoriel php >Explication détaillée des techniques d'utilisation de include() en php
L'instruction
include() inclut et exécute le fichier spécifié.
La documentation suivante s'applique également à require(). Les deux structures sont identiques sauf dans la manière dont elles gèrent les échecs. include() produit un avertissement et require() provoque une erreur fatale. En d’autres termes, utilisez require() si vous souhaitez arrêter le traitement de la page si un fichier manquant est rencontré. Ce n'est pas le cas avec include() et le script continuera à s'exécuter. Assurez-vous également que le include_path approprié est défini.
Lorsqu'un fichier est inclus, le code qu'il contient hérite de la portée variable de la ligne d'inclusion. À partir de ce moment, toutes les variables disponibles dans le fichier appelant sur cette ligne sont également disponibles dans le fichier appelé.
Exemple include() de base
vars.php <?php $color = 'green'; $fruit = 'apple'; ?> test.php <?php echo "A $color $fruit"; // A include 'vars.php'; echo "A $color $fruit"; // A green apple ?>
Si include apparaît dans une fonction dans un fichier appelant, tout le code contenu dans le fichier appelé se comportera comme s'il était identique à celui défini dans cette fonction . Il suivra donc la portée variable de cette fonction.
Inclut dans les fonctions
<?php function foo() { global $color; include 'vars.php'; echo "A $color $fruit"; } /* vars.php is in the scope of foo() so * * $fruit is NOT available outside of this * * scope. $color is because we declared it * * as global. */ foo(); // A green apple echo "A $color $fruit"; // A green ?>
Lorsqu'un fichier est inclus, l'analyseur quitte le mode PHP et entre en mode HTML au début du fichier cible, pour restaurer à la fin du fichier. Pour cette raison, tout code d'un fichier objet qui doit être exécuté en tant que code PHP doit être inclus dans des balises de début et de fin PHP valides.
Si les "URL fopen wrappers" sont activés dans PHP (configuration par défaut), vous pouvez utiliser des URL (via HTTP ou d'autres protocoles d'encapsulage pris en charge - voir l'Annexe L pour les protocoles pris en charge) au lieu des fichiers locaux inclus. Si le serveur cible interprète le fichier cible comme du code PHP, vous pouvez transmettre des variables au fichier inclus à l'aide de la requête URL chaîne pour HTTP GET. À proprement parler, cela n'est pas la même chose que d'inclure un fichier et d'hériter de l'espace variable du fichier parent ; le fichier de script est en fait exécuté sur le serveur distant et le script local inclut ses résultats.
ATTENTION
Les versions Windows de PHP antérieures à la version 4.3.0 ne prennent pas en charge l'accès fichier distant pour cette fonction, même si l'option allow_url_fopen est activée.
include() sur HTTP
<?php /* This example assumes that www.example.com is configured to parse .php * * files and not .txt files. Also, 'Works' here means that the variables * * $foo and $bar are available within the included file. */ // Won't work; file.txt wasn't handled by www.example.com as PHP include 'http://www.example.com/file.txt?foo=1&bar=2'; // Won't work; looks for a file named 'file.php?foo=1&bar=2' on the // local filesystem. include 'file.php?foo=1&bar=2'; // Works. include 'http://www.example.com/file.php?foo=1&bar=2'; $foo = 1; $bar = 2; include 'file.txt'; // Works. include 'file.php'; // Works. ?>
Pour plus d'informations, voir Utilisation de fichiers distants, fopen() et file().
Étant donné que include() et require() sont des structures de langage spéciales, elles doivent être placées dans un groupe d'instructions (entre accolades) lorsqu'elles sont utilisées dans des instructions conditionnelles.
include() et groupe d'instructions conditionnelles
<?php // This is WRONG and will not work as desired. if ($condition) include $file; else include $other; // This is CORRECT. if ($condition) { include $file; } else { include $other; } ?>
Gestion des valeurs de retour : vous pouvez utiliser l'instruction return() dans le fichier inclus pour terminer le Exécutez le programme dans le fichier et renvoyez le script qui l'a appelé. Il est également possible de renvoyer les valeurs des fichiers inclus. La valeur de retour de l'appel d'inclusion peut être obtenue comme une fonction normale.
Remarque : En PHP 3, return ne peut pas apparaître dans les fichiers inclus à moins d'être appelé dans une fonction. Dans ce cas, return() agit sur la fonction plutôt que sur l'ensemble du fichier.
Instructions include() et return()
return.php <?php $var = 'PHP'; return $var; ?> noreturn.php <?php $var = 'PHP'; ?> testreturns.php <?php $foo = include 'return.php'; echo $foo; // prints 'PHP' $bar = include 'noreturn.php'; echo $bar; // prints 1 ?>
La valeur de $bar est 1 car include s'est exécuté avec succès. Notez la différence dans les exemples ci-dessus. Le premier utilise return() dans le fichier inclus et l’autre non. Plusieurs autres façons d'"inclure" un fichier dans une variable consistent à utiliser fopen(), file() ou include() en conjonction avec une fonction de contrôle de sortie.
Remarque : Puisqu'il s'agit d'une structure de langage plutôt que d'une fonction, elle ne peut pas être appelée par des "fonctions variables".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!