Quelle est la différence entre la fonction include() et la fonction require() en php ?

不言
Libérer: 2023-04-03 17:14:02
original
3150 Les gens l'ont consulté

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 &#39;</br>&#39;;
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);*/
Copier après la connexion

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不存在会产生一个致命错误
Copier après la connexion

Ajouté : inclure, nécessiter la portée d'inclusion

Fichier a2.inc

$name="lidquan";
class Teacher{
    public function show(){
        echo &#39;my job is teacher</br>&#39;;
    }
}
function showName(){
    echo &#39;a2.inc 里面的方法&#39;;
}
Copier après la connexion

Fichier index.php

function a(){
    require "a2.inc";
    $teacher =new Teacher();
    $teacher->show();
}
 
a();//正常调用
 
showName();//正常调用
 
var_dump($name);//提示$name没有定义
Copier après la connexion

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 PHP utilise-t-il la méthode curl pour demander un Java interface? Deux façons pour PHP de demander l'interface Java en utilisant la méthode curl

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!