Maison > Article > développement back-end > Quelle est la différence entre la fonction include() et la fonction require() en php ?
Ce que cet article vous apporte concerne la différence entre la fonction include() et la fonction require() en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .
Il y a trop de questions en ligne sur la différence entre include et require en php. En fait, rien de ce qui est dit ne résiste à la vérification. J'ai trouvé une capture d'écran au hasard comme suit :
Je ne jure que par l'explication : include() est une fonction d'inclusion conditionnelle, tandis que require() est une fonction incluse de manière inconditionnelle.
Mais cela s'est produit il y a longtemps. Il existe effectivement des différences entre require et include dans PHP actuel. L'auteur a testé la version 5.3 ou supérieure. Les résultats du test sont les suivants :
J'ai trouvé que. ces deux structures sont sauf que les performances sont exactement les mêmes, sauf la façon dont les échecs de confinement sont gérés.
1. En termes de performances
Le test a révélé qu'il n'y a pas beaucoup de différence de performances entre require et include, donc je pense que cet aspect n'a pas besoin d'être pris en compte (peut-être que je ne l'ai pas fait testé suffisamment d'échantillons)
<pre name="code" class="php">$startTime=time(); $startMemoryUsed=memory_get_usage(); require "a1.inc"; $endMemoryUsed=memory_get_usage(); $endTime=time(); $usedMemory=($endMemoryUsed-$startMemoryUsed)/1024; print_r($usedMemory);//1.6171875 echo '</br>'; print_r($endTime-$startTime); /*$startTime=time(); $startMemoryUsed=memory_get_usage(); include "a1.inc"; $endMemoryUsed=memory_get_usage(); $endTime=time(); $usedMemory=($endMemoryUsed-$startMemoryUsed)/1024; print_r($usedMemory);//1.6171875 print_r($endTime-$startTime);*/
2. En termes de gestion des erreurs d'inclusion
Lorsque l'inclusion échoue, include() génère un avertissement et continue l'exécution, tandis que require() provoque une erreur fatale. En d’autres termes, utilisez require() si vous souhaitez arrêter le traitement de la page lorsqu’un fichier manquant est rencontré, sinon utilisez include().
include "a9.inc";//<span style="font-family: Arial, Helvetica, sans-serif;">a9.inc不存在会产生一个警告</span> require "a10.inc";//a10.inc不存在会产生一个致命错误
Ajouté : inclure, nécessiter la portée d'inclusion
Fichier a2.inc
$name="lidquan"; class Teacher{ public function show(){ echo 'my job is teacher</br>'; } } function showName(){ echo 'a2.inc 里面的方法'; }
Fichier index.php
function a(){ require "a2.inc"; $teacher =new Teacher(); $teacher->show(); } a();//正常调用 showName();//正常调用 var_dump($name);//提示$name没有定义
La capture d'écran du résultat est la suivante :
Un résumé des problèmes de portée après avoir inclus le fichier est la suivante :
1. Toutes les fonctions et classes définies dans le fichier inclus auront une portée globale dans le fichier inclus après avoir été incluses
2. Le fichier inclus sera modifié avec le changement de position contenant. Par exemple, s'il est inclus dans une fonction, les variables du fichier inclus sont des variables locales
Articles connexes recommandés :
Comment stocker la session dans la base de données et l'utiliser en PHP (avec code)
Implémentation de ThinkPHP Code pour l'assemblage de chaînes de pagination dans le framework
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!