Quels sont les moyens d'importer des fichiers en PHP ? Le fichier d'importation PHP comporte quatre instructions : include, require, include_once, require_once Jetons un coup d'œil à des exemples spécifiques de fichiers d'importation PHP.
Syntaxe de base
require : La fonction require est généralement placée au début du script PHP et sera exécuté avant PHP Commencez par lire le fichier importé spécifié par require, incluez et essayez d'exécuter le fichier de script importé. La façon dont require fonctionne est d'améliorer l'efficacité d'exécution de PHP. Une fois interprété une fois dans la même page Web, il ne sera pas interprété une deuxième fois. Mais de la même manière, comme il n'interprétera pas de manière répétée le fichier importé, vous devez utiliser include lorsque vous utilisez des boucles ou des instructions conditionnelles pour introduire des fichiers dans PHP.
include : peut être placé n'importe où dans le script PHP, généralement dans la partie traitement du contrôle de processus. Lorsque le script PHP est exécuté dans le fichier spécifié par include, il sera inclus et tenté de s'exécuter. Cette méthode peut simplifier le processus d'exécution du programme. Lorsqu'il rencontre le même fichier pour la deuxième fois, PHP le réinterprètera toujours à nouveau. L'efficacité d'exécution de include est bien inférieure à celle de require. En même temps, lorsque la fonction définie par l'utilisateur est incluse dans le fichier importé, PHP aura des problèmes de définition répétée des fonctions pendant le processus d'interprétation.
require_once / include_once : ont respectivement la même fonction que require / include. La différence est que lorsqu'ils sont exécutés, ils vérifieront d'abord si le contenu cible a déjà été importé. a été importé, le même contenu ne sera alors plus réintroduit.
Les différences les unes par rapport aux autres
include a une valeur de retour, tandis que require n'a pas de valeur de retour
Lorsque include ne parvient pas à charger le fichier, il générera un avertissement (E_WARNING) et le script continuera à s'exécuter après que l'erreur se soit produite. L'inclusion est donc utilisée lorsque vous souhaitez poursuivre l'exécution et afficher les résultats à l'utilisateur.
//test1.php <?php include './tsest.php'; echo 'this is test1'; ?> //test2.php <?php echo 'this is test2\n'; function test() { echo 'this is test\n'; } ?> //结果: this is test1
require générera une erreur fatale (E_COMPILE_ERROR) en cas d'échec du chargement, et le script cessera de s'exécuter une fois l'erreur survenue. Généralement utilisé lorsque le code ultérieur dépend du fichier chargé.
//test1.php <?php require './tsest.php'; echo 'this is test1'; ?> //test2.php <?php echo 'this is test2\n'; function test() { echo 'this is test\n'; } ?>
Résultat :
L'inclusion des fichiers chargés ne sera pas jugée. il est répété ou non, tant qu'il y a une instruction include, il sera chargé une fois (même si un chargement répété peut se produire). Lorsque include_once charge un fichier, il y aura un mécanisme de jugement interne pour déterminer si le code précédent a été chargé. Ce qu'il faut noter ici, c'est que include_once est jugé en fonction du fait qu'un fichier avec le même chemin a été précédemment importé, plutôt qu'en fonction du contenu du fichier (c'est-à-dire que le contenu des deux fichiers à importer est le même). , et utiliser include_once en introduira toujours deux).
//test1.php <?php include './test2.php'; echo 'this is test1'; include './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1this is test2 //test1.php <?php include './test2.php'; echo 'this is test1'; include_once './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1 //test1.php <?php include_once './test2.php'; echo 'this is test1'; include './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1this is test2 //test1.php <?php include_once './test2.php'; echo 'this is test1'; include_once './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1
require et require_once : La même différence que include et include_once.
Processus d'exécution pendant le chargement
1. Quittez le mode script php à partir de l'instruction include (require) (entrez en mode code html)
2. Chargez le code dans le fichier défini par l'instruction include et essayez de l'exécuter
3. Quittez le mode html, entrez à nouveau dans le mode script php et continuez l'exécution du script suivant.
//test1.php <html> <body> 主文件开始位置: <?php echo "<br> 主文件中位置 A"; include "./test2.php"; //要载入的文件 echo "<br> 主文件中位置 B"; ?> <br> 主文件结束位置 </body> </html> //test2.php <br> 被载入文件位置 1 <?php echo "<br> 被载入文件位置 2"; ?> <br> 被载入文件位置 3
Résultat :
Analyse :
Problème de chemin lors du chargement
Localisez l'emplacement d'un fichier chargé par rapport à l'emplacement du fichier de la page Web actuelle.
./ 表示表示当前位置,即当前网页文件所在的目录 . . / 表示上一级位置,即当前网页文件所在目录的上一级目录 //例如: include "./test2.php"; require "../../test3.html";
Il est divisé en chemin absolu local et chemin absolu en réseau
Recherchez récursivement vers le bas à partir du répertoire racine local couche par couche jusqu'à ce que vous trouviez le fichier à importer dans le répertoire correspondant.
include "C:/PHP/test/test2.php";
Nous savons tous que les chemins absolus ne sont pas propices à la portabilité et à la maintenabilité du projet, il est donc rare d'écrire des chemins absolus directement dans le code comme celui-ci, mais que devons-nous faire si nous devons utiliser des chemins absolus des chemins ? ? Il existe des constantes magiques __DIR__ et un tableau global $_SERVER en PHP. L'utilisation est la suivante :
<?php define('DS') or define('DS',DIRECTORY_SEPARATOR); echo "使用绝对路径引入(方法一)"; include __DIR__ . DS . 'test2.php'; echo "使用绝对路径载入方法(方法二)"; $root = $_SERVER['DOCUMENT_ROOT']; // 获得当前站点的根目录 include $root.DS.'node_test'.DS.'inAndRe'.DS. 'test2.php'; ?>
Lien vers le fichier via le. URL, le serveur Le fichier pointé par l'URL sera exécuté et renvoyé
include "http://www.lishnli/index.php"
Seul le nom du fichier est donné mais aucune information sur le chemin est donné. À ce moment, PHP recherchera le fichier dans le répertoire de la page Web actuelle. Si un fichier portant le même nom est trouvé, l'exécutera et l'importera.
需要注意:无论采用哪种路径,必须要加上文件后缀名,这四种文件载入方式不能识别无后缀的文件。
//test1.php include "./test2.php"; //结果:this is test2 //test1.php include "./test2"; //结果:
返回值的比较
上文说道include有返回值,而require无返回值
对于include,如果载入成功,有返回值,返回值为1;如果载入失败,则返回false.
对于require,如果载入成功,有返回值,返回值为1;如果载入失败,无返回值。
//test1.php <?php $a = include "./test2.php"; var_dump($a); echo "<br>"; $b = include "./test2.phps"; var_dump($b); echo "<br>"; $c = require "./test2.php"; var_dump($c); echo "<br>"; $d = require "./test2.phps"; var_dump($d); ?>
输出:
当被载入文件中有return语句时,会有另外的机制,此时return语句的作用是终止载入过程,即被载入文件中return语句的后续代码不再载入。return语句也可以用于被载入文件载入时返回一个数据。
//test1.php <?php $a = include "./test2.php"; echo "<br>"; var_dump($a); ?> //test2.php //该文件中有return语句 <?php $b = 'test2'; echo "被载入的文件:A 位置"; return $b; echo "<br 被载入的文件: B 位置"; ?>
结果:
相关推荐:
php 字符串写入文件或追加入文件(file_put_contents)
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!