Maison > Article > développement back-end > Vous ne connaissez toujours pas include et require en PHP ? Jetez un œil à cet article !
Cet article vous donnera une introduction détaillée à inclure et à exiger en PHP, afin que tout le monde puisse bien comprendre l'inclusion et l'exigence. Jetons un coup d'œil !
En PHP, il existe deux manières d'inclure des fichiers externes, à savoir include et require. Quelle est la différence entre eux ?
Si le fichier n'existe pas ou qu'une erreur se produit, require génère une erreur de niveau E_COMPILE_ERROR et le programme s'arrête de s'exécuter. L'inclusion génère uniquement un avertissement et le script continuera à s'exécuter.
C'est la principale différence entre eux. Sous d'autres aspects, require est fondamentalement la même que include.
Si le fichier a déjà été inclus, il ne sera pas inclus à nouveau. . Comme le nom de cette instruction l'indique, include only once
// a.php 不存在 include "a.php"; // warning // require "a.php"; // error echo 111; // 使用include时111会输出 // file1.php 中只有一行代码echo 'file1'; require_once 'includeandrequire/file1.php'; // file1 require_once 'includeandrequire/file1.php'; // noting include_once 'includeandrequire/file1.php'; // noting include_once 'includeandrequire/file1.php'; // noting require 'includeandrequire/file1.php'; // file1 require 'includeandrequire/file1.php'; // file1 require 'includeandrequire/file1.php'; // file1 require 'includeandrequire/file1.php'; // file1Nous pouvons voir qu'une fois la première _once chargée avec succès, peu importe qu'il s'agisse de require_once ou d'include_once, ce fichier ne sera plus chargé. Sans _once, le fichier sera chargé à plusieurs reprises.
file2.php <?php echo 'file2:' . $a, PHP_EOL; echo 'file2:' . $b, PHP_EOL; $b = "file2"; myFile.php <?php $a = 'myFile'; $b = 'youFile'; require_once 'includeandrequire/file2.php'; echo $a, PHP_EOL; echo $b, PHP_EOL; // 输出结果 // file2:myFile // file2:youFile // myFile // file2 file3.php <?php $c = 'file3'; myFile.php <?php function test(){ require_once 'includeandrequire/file3.php'; echo $c, PHP_EOL; // file3 } test(); echo $c, PHP_EOL; // emptyLe fichier inclus peut obtenir les variables du fichier parent, et le fichier parent peut également obtenir les variables du fichier inclus. Cependant, vous devez faire attention à un cas particulier de _once.
function foo(){ require_once 'includeandrequire/file3.php'; return $c; } for($a=1;$a<=5;$a++){ echo foo(), PHP_EOL; } // file3 // empty // empty // empty // emptyLors de l'utilisation de _once et du chargement en boucle, seul le contenu de file3.php sera affiché pour la première fois. Pourquoi est-ce ? Étant donné que la portée actuelle de la variable est dans la méthode, une fois le premier chargement terminé, les fichiers suivants ne seront pas chargés à nouveau. À ce stade, les quatre boucles suivantes n'auront pas de valeur par défaut
c vide.
Si un fichier est chargé en utilisant _once dans deux méthodes en même temps, la deuxième méthode le chargera-t-elle toujours ?
function test1(){ require_once 'includeandrequire/file1.php'; } function test2(){ require_once 'includeandrequire/file1.php'; } test1(); // file1 test2(); // emptyDésolé, seule la première méthode sera chargée avec succès et la deuxième méthode ne sera pas chargée à nouveau. Alors, lequel est-il préférable d'utiliser dans notre développement quotidien ?
En termes d'efficacité, _once doit vérifier si le fichier a été chargé. L'efficacité sera moindre, mais ce n'est pas absolu c'est même une diminution invisible à nos yeux nus, donc son problème d'efficacité peut être. ignoré. Et cela apporte bien plus d'avantages que sans _once
file4.php <?php return 'file4'; file4.txt 可以吧 myFile.php <?php $v = require 'includeandrequire/file4.php'; echo $v, PHP_EOL; // file4 include 'includeandrequire/file4.txt'; // 可以吧 include 'https://www.baidu.com/index.html'; // 百度首页的html代码Maintenant, nous avons une compréhension très approfondie de include. et require. Ces deux façons de charger des fichiers Ce n'est pas compliqué, mais il est facile d'avoir quelques pièges, surtout lorsque _once est utilisé dans les méthodes, il faut y prêter une attention particulière. Enfin, voici un petit bonus, encapsulant une méthode pour charger tous les fichiers du répertoire d'un coup :
function include_all_once ($pattern) { foreach (glob($pattern) as $file) { require $file; } } include_all_once('includeandrequire/*');
测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/%E5%BD%BB%E5%BA%95%E6%90%9E%E6%98%8E%E7%99%BDPHP%E4%B8%AD%E7%9A%84include%E5%92%8Crequire.phpApprentissage recommandé : "
Tutoriel vidéo PHP
"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!