le fichier php contient des fonctions
Dans le développement réel, il est souvent nécessaire de mettre le code commun du programme dans un fichier, et les fichiers utilisant ces codes n'ont besoin que d'inclure ce fichier. Cette méthode contribue à améliorer la réutilisabilité du code et apporte une grande commodité à l’écriture et à la maintenance du code. En PHP, il existe quatre méthodes : require, require_once, include et include-once pour inclure un fichier.
Comparons leurs différences :
函数 | 包含失败 | 特点 |
---|---|---|
Inlcude | 返回一条警告 | 文件继续向下执行。通常用于动态包含 |
Require | 一个致命的错 | 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once | 返回一条警告 | 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once | 一个致命的错 | 除了原的功能一外,会做一次once检测,防止文件反复被包含 |
Remarque :
1. Utilisez _once avec une fois de moins, car cela consommera plus de ressources pour effectuer le travail de détection.
2, Extra Advanced
Les fichiers d'inclusion ne doivent être compilés qu'une seule fois, car chaque fois que l'inclusion est incluse, le code correspondant sera à nouveau exécuté. Comment réduire le processus de ré-analyse lorsque l'inclusion est à nouveau exécutée. .
Faisons quelques expériences :
1. include contient la fonction de la fonction.
Créer un fichier Functions.php et y écrire deux fonctions :
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
Dans le même répertoire que Functions.php, je crée un fichier user.php et j'ajoute le fichier Functions.php inclus . De cette façon, mes fonctions peuvent être placées spécifiquement dans function.php Lorsque ces fonctions sont nécessaires, je les inclurai à partir de là :
<?php //user.php include 'functions.php'; //可以直接调用 demo(); test(); ?>
Je connais la fonction include grâce à l'exemple ci-dessus. Ensuite, nous comparons include et require :
Dans le code, nous utilisons d'abord include pour inclure le fichier test.php inexistant,
<?php //user.php include 'functions.php'; include 'test.php'; //可以直接调用 demo(); test(); ?>
puis utilisons require pour inclure l'inexistant Fichier test.php :
<?php //user.php include 'functions.php'; require 'test.php'; //可以直接调用 demo(); test(); ?>
Grâce à la comparaison des exemples ci-dessus, nous avons trouvé :
Si le fichier test.php n'existe pas, include émettra un avertissement et continuera à exécuter la démo () et test() fonctions.
Et require signale directement une erreur, et les fonctions demo() et test() ne peuvent pas continuer à s'exécuter.
Nous le savons grâce au tableau : la différence entre include et include_once est de détecter s'il est inclus à plusieurs reprises. Si include_once est inclus à plusieurs reprises, le fichier correspondant ne sera plus inclus, alors que include ne s'en soucie pas. Que le fichier ait été importé ou non, importez-le à nouveau.
Essayons le même user.php que nous venons de refaire. Nous incluons function.php deux fois, en utilisant respectivement include et include_once :
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include 'functions.php'; include 'functions.php'; //可以直接调用 demo(); test(); ?>
Changez-le en include_once et réessayez :
<?php
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include_once 'functions.php'; include_once 'functions.php'; //可以直接调用 demo(); test(); ?>
Après l'avoir exécuté séparément, vous constaterez que - include Included a signalé l'erreur suivante lors de l'introduction de function.php deux fois cette fois :
L'invite dans l'image ci-dessus est que la fonction demo() ne peut pas être redéfinie.
Comme nous l'avons mentionné dans le chapitre sur la définition des fonctions, une fonction ne peut pas être définie deux fois, sinon une erreur sera signalée. Parce que nous avons inclus function.php deux fois, il a été exécuté deux fois, cette erreur a donc été signalée.
La raison pour laquelle include_once ne signale pas d'erreur est qu'il détecte que function.php a déjà été inclus et ne l'inclut plus.
Quant aux fonctions de require et require_once, pouvez-vous utiliser votre petit cerveau le plus intelligent pour les déduire ? require_once a deux caractéristiques :
1. Le fichier inclus doit exister, sinon l'exécution s'arrêtera
2. Des vérifications d'inclusion répétées seront effectuées