Maison > développement back-end > Problème PHP > Le rôle du fichier d'entrée php

Le rôle du fichier d'entrée php

藏色散人
Libérer: 2023-02-28 12:50:01
original
4008 Les gens l'ont consulté

Le rôle du fichier d'entrée php

Le rôle du fichier d'entrée php

Le fichier d'entrée php peut réaliser la fonction de chargement automatique.

Fonction de chargement automatique pour analyser les fichiers d'entrée PHP

Chargement automatique de php :

Avant php5, nous devions utiliser une certaine classe ou class Méthode, elle doit inclure ou require avant de pouvoir être utilisée. Chaque fois que vous utilisez une classe, vous devez écrire une inclusion.

L'auteur PHP veut simplifier les choses. classe. S'il n'y a pas d'inclusion actuellement, le système peut trouver automatiquement cette classe et introduire automatiquement ~

Donc : la fonction __autoload() a vu le jour.

est généralement placé dans la classe d'entrée d'application, telle que discuz, placée dans class_core.php.

Recommandé : "Tutoriel PHP"

Parlons d'abord d'un exemple simple :

Le premier cas : le contenu du fichier A.php est comme suit

<?php
class A{
  public function __construct(){
         echo &#39;fff&#39;;
  }
}
?>
Copier après la connexion

Le contenu du fichier C.php est le suivant :

<?php  
function __autoload($class)  
{  
$file = $class . &#39;.php&#39;;  
if (is_file($file)) {  
require_once($file);  
}  
}  
 
$a = new A(); //这边会自动调用__autoload,引入A.php文件
 
?>
Copier après la connexion

Deuxième cas : Parfois j'espère personnaliser le chargement automatique et créez un chargeur de nom Cool plus récent, puis C.php est modifié comme suit :

<?php
function loader($class)
{
$file = $class . &#39;.php&#39;;
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register(&#39;loader&#39;); //注册一个自动加载方法,覆盖原有的__autoload
$a = new A();
?>
Copier après la connexion

La troisième situation : j'espère être plus sophistiqué et utiliser une classe pour gérer le chargement automatique

<?php  
class Loader  
{  
public static function loadClass($class)  
{  
$file = $class . &#39;.php&#39;;  
if (is_file($file)) {  
require_once($file);  
}  
}  
}  
 
spl_autoload_register(array(&#39;Loader&#39;, &#39;loadClass&#39;));  
 
$a = new A();
 
?>
Copier après la connexion

Actuellement la meilleure forme.

Habituellement, nous mettons spl_autoload_register(*) dans le script d'entrée, c'est-à-dire cité depuis le début. Par exemple, l'approche discuz suivante.

if(function_exist(&#39;spl_autoload_register&#39;)){
 
  spl_autoload_register(array(&#39;core&#39;,&#39;autoload&#39;));  //如果是php5以上,存在注册函数,则注册自己写的core类中的autoload为自动加载函数
 
}else{
 
  function __autoload($class){         //如果不是,则重写php原生函数__autoload函数,让其调用自己的core中函数。
 
    return core::autoload($class);
 
  }
 
}
Copier après la connexion

C'est super de mettre ce paragraphe au début du fichier d'entrée~

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:
php
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