Table des matières
PHP中spl_autoload_register函数的用法,splautoload
Maison développement back-end tutoriel php PHP中spl_autoload_register函数的用法,splautoload_PHP教程

PHP中spl_autoload_register函数的用法,splautoload_PHP教程

Jul 13, 2016 am 09:56 AM
spl

PHP中spl_autoload_register函数的用法,splautoload

spl_autoload_register
(PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明
bool spl_autoload_register ([ callback $autoload_function ] )
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或 spl_autoload_call()。 参数 autoload_function
欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数 spl_autoload()。 返回值
如果成功则返回 TRUE,失败则返回 FALSE。 注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。 SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的。SPL有两个不同的函数 spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。 范例

设我们有一个类文件A.php,里面定义了一个名字为A的类:

view plaincopy to clipboardprint?
class A  
{  
public function __construct()  
{  
echo 'Got it.';  
}  
}


然后我们有一个index.php需要用到这个类A,常规的写法就是

view plaincopy to clipboardprint?
require('A.php');  
$a = new A();


但是有一个问题就是,假如我们的index.php需要包含的不只是类A,而是需要很多类,这样子就必须写很多行require语句,有时候也会让人觉得不爽。


不过在php5之后的版本,我们就不再需要这样做了。在php5中,试图使用尚未定义的类时会自动调用__autoload函数,所以我们可以通过编写__autoload函数来让php自动加载类,而不必写一个长长的包含文件列表。

例如在上面那个例子中,index.php可以这样写:

view plaincopy to clipboardprint?
function __autoload($class)  
{  
$file = $class . '.php';  
if (is_file($file)) {  
require_once($file);  
}  
}  

$a = new A();

 

当然上面只是最简单的示范,__autoload只是去include_path寻找类文件并加载,我们可以根据自己的需要定义__autoload加载类的规则。

此外,假如我们不想自动加载的时候调用__autoload,而是调用我们自己的函数(或者类方法),我们可以使用spl_autoload_register来注册我们自己的autoload函数。它的函数原型如下:
bool spl_autoload_register ( [callback $autoload_function] )

我们继续改写上面那个例子:

view plaincopy to clipboardprint?
function loader($class)  
{  
$file = $class . '.php';  
if (is_file($file)) {  
require_once($file);  
}  
}  

spl_autoload_register('loader');  

$a = new A();

 

这样子也是可以正常运行的,这时候php在寻找类的时候就没有调用__autoload而是调用我们自己定义的函数loader了。同样的道理,下面这种写法也是可以的:

view plaincopy to clipboardprint?
class Loader  
{  
public static function loadClass($class)  
{  
$file = $class . '.php';  
if (is_file($file)) {  
require_once($file);  
}  
}  
}  

spl_autoload_register(array('Loader', 'loadClass'));  

$a = new A();

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/988859.htmlTechArticlePHP中spl_autoload_register函数的用法,splautoload spl_autoload_register (PHP 5 = 5.1.2)spl_autoload_register 注册__autoload()函数 说明 bool spl_autoload_register ([ ca...
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Structures de données PHP SPL : injectez de la vitesse et de la flexibilité dans vos projets Structures de données PHP SPL : injectez de la vitesse et de la flexibilité dans vos projets Feb 19, 2024 pm 11:00 PM

Présentation de la bibliothèque de structures de données PHPSPL La bibliothèque de structures de données PHPSPL (Standard PHP Library) contient un ensemble de classes et d'interfaces pour stocker et manipuler diverses structures de données. Ces structures de données comprennent des tableaux, des listes chaînées, des piles, des files d'attente et des ensembles, chacun fournissant un ensemble spécifique de méthodes et de propriétés pour manipuler les données. Tableaux En PHP, un tableau est une collection ordonnée qui stocke une séquence d'éléments. La classe de tableau SPL fournit des fonctions améliorées pour les tableaux PHP natifs, notamment le tri, le filtrage et le mappage. Voici un exemple d'utilisation de la classe array SPL : useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

Structures de données PHP SPL : une boîte à outils pour donner un nouveau look à votre code Structures de données PHP SPL : une boîte à outils pour donner un nouveau look à votre code Feb 19, 2024 pm 12:09 PM

Structures de données PHPSPL : présentation Les structures de données phpSPL sont un composant de la bibliothèque standard PHP (SPL) qui fournit un ensemble de structures de données communes, notamment des piles, des files d'attente, des tableaux et des tables de hachage. Ces structures de données sont optimisées pour gérer efficacement une variété de types de données et fournir une interface cohérente qui simplifie le développement d'applications. Pile de structure de données principale Une pile est une collection ordonnée suivant le principe du dernier entré, premier sorti (LIFO). Dans la pile, le dernier élément ajouté sera le premier élément supprimé. SPL fournit une classe SplStack pour représenter une pile. L'exemple suivant montre comment utiliser SplStack : $stack=newSplStack();$stack->push(1

Structures de données PHP SPL : l'arme ultime pour la gestion des données Structures de données PHP SPL : l'arme ultime pour la gestion des données Feb 20, 2024 am 11:30 AM

Introduction à la bibliothèque de structures de données PHPSPL La bibliothèque standard PHP (SPL) contient un riche ensemble de types de données intégrés appelés structures de données. Ces structures permettent une gestion efficace et flexible de collections de données complexes. L'utilisation des structures de données SPL peut apporter les avantages suivants à votre application : Optimisation des performances : les structures de données SPL sont spécifiquement conçues pour fournir des performances optimales dans diverses situations. Maintenabilité améliorée : ces structures simplifient la gestion de types de données complexes, améliorant ainsi la lisibilité et la maintenabilité du code. Standardisation : les structures de données SPL sont conformes aux spécifications de programmation PHP, garantissant la cohérence et l'interopérabilité entre les applications. Types de structure de données SPL SPL propose plusieurs types de structure de données, chacun avec ses propres caractéristiques et utilisations : Pile (St

Bonnes pratiques en matière de structure de données PHP SPL : assurer la robustesse du code Bonnes pratiques en matière de structure de données PHP SPL : assurer la robustesse du code Feb 19, 2024 pm 03:09 PM

1. Choisissez le type de données abstrait (ADT) approprié. ADT définit un ensemble d'opérations et d'attributs utilisés pour décrire le type de données de manière abstraite. SPL fournit un grand nombre d'implémentations ADT, notamment des tableaux, des collections, des files d'attente et des piles. Choisir le bon ADT est essentiel car il affecte le comportement et la surcharge de votre code. Array (ArrayObject) : une collection ordonnée utilisée pour stocker des paires clé-valeur. Set(SetObject) : collection non ordonnée, utilisée pour stocker des éléments uniques. QueueObject : structure de données premier entré, premier sorti (FIFO) utilisée pour traiter les messages et les événements. Stack (StackObject) : structure de données Last-in-First-Out (LIFO) utilisée pour le traitement récursif et les appels de fonction. 2. Utilisez des itérateurs pour

Structures de données PHP SPL : l'arme secrète pour gérer des données complexes Structures de données PHP SPL : l'arme secrète pour gérer des données complexes Feb 20, 2024 am 11:10 AM

PHPStandardLibrary (SPL) fournit à PHP un ensemble de structures de données puissantes pour un traitement et une gestion efficaces des données complexes. Ces structures de données comprennent des tableaux, des ensembles, des cartes ordonnées, etc., spécialement conçues pour offrir d'excellentes performances et flexibilité dans divers scénarios. Tableau (Array) Un tableau PHP est une collection ordonnée qui stocke les données sous forme de paires clé-valeur. Les tableaux sont largement utilisés pour stocker des listes, des tables de hachage et des tableaux associatifs. Les tableaux peuvent être facilement créés, manipulés et parcourus à l'aide des fonctions array_* intégrées. $array=["pomme","banane","cerise"];array_push($array,"durian");

Moteur de données intégré Java de SQLite à l'analyse d'exemples SPL Moteur de données intégré Java de SQLite à l'analyse d'exemples SPL May 05, 2023 pm 09:52 PM

Les moteurs de données pouvant être embarqués dans les applications Java semblent riches, mais il n'est pas facile de choisir. Redis a une faible puissance de calcul et ne convient qu'aux scénarios de requêtes simples. L'architecture Spark est complexe et lourde, ce qui rend le déploiement et la maintenance très compliqués. Les bases de données embarquées telles que H2\HSQLDB\Derby ont des structures simples, mais leurs capacités informatiques sont insuffisantes et ne prennent même pas en charge les fonctions de base des fenêtres. En revanche, SQLite a atteint un bon équilibre entre architecture et puissance de calcul et est un moteur de données Java intégré largement utilisé. SQLite s'adapte aux scénarios d'application de base conventionnels. SQLite a une structure simple Bien que son noyau soit développé en langage C, il est bien empaqueté et présenté à l'extérieur comme un petit package Jar, qui peut être facilement intégré en Java.

Structures de données PHP SPL : libérer le potentiel des opérations de données Structures de données PHP SPL : libérer le potentiel des opérations de données Feb 19, 2024 pm 06:00 PM

Explorez les avantages des structures de données PHPSPL La bibliothèque de structures de données phpSPL (Standard PHP Library) est un trésor de structures de données prédéfinies telles que des tableaux, des files d'attente, des piles et des ensembles qui aident à simplifier et à gérer efficacement les données. Grâce à ces structures, les développeurs peuvent : Améliorer l'efficacité de la gestion des données : les structures de données SPL fournissent des interfaces cohérentes et des algorithmes d'optimisation qui simplifient le stockage, la récupération et la manipulation des données. Lisibilité améliorée du code : grâce à des structures standardisées, le code devient plus facile à comprendre et à maintenir, améliorant ainsi l'efficacité du développement. Performances améliorées : les structures de données SPL sont optimisées pour gérer efficacement de grandes quantités de données, améliorant ainsi les performances globales de votre application. Types de structures de données SPL La bibliothèque de structures de données SPL couvre un large éventail de structures de données

Structures de données PHP SPL : apporter des performances supérieures à vos applications Structures de données PHP SPL : apporter des performances supérieures à vos applications Feb 19, 2024 pm 03:36 PM

Présentation des structures de données PHPSPL PHPStandardLibrary (SPL) est un ensemble de structures de données prédéfinies et de classes auxiliaires introduites dans php5.3. Ces structures de données sont hautement optimisées et conçues pour le traitement efficace de grands ensembles de données, offrant une gamme de fonctions et de méthodes puissantes. Types de structure de données SPL SPL fournit une variété de types de structure de données, notamment : Tableau (ArrayObject) : un tableau de variables qui fournit une série de fonctions supplémentaires, telles que l'itération et le tri. Pile (SplStack) : structure de données Last-in-First-Out (LIFO), prend en charge les opérations push et pop. File d'attente (SplQueue) : structure de données premier entré, premier sorti (FIFO) qui prend en charge les opérations de mise en file d'attente et de retrait de la file d'attente. Ensemble(S

See all articles