


Explication détaillée sur l'utilisation de la fonction spl_autoload_register() en PHP
Cet article présente principalement l'utilisation de la fonction spl_autoload_register() en PHP et analyse les compétences d'utilisation associées de la fonction __autoload et de la fonction spl_autoload_register sous forme d'exemples. Les amis dans le besoin peuvent se référer au
manuel recommandé : manuel d'auto-apprentissage complet phpAvant de comprendre cette fonction, regardons une autre fonction : __autoload.
1. __autoload
Il s'agit d'une fonction de chargement automatique en PHP5, lorsque nous instancions une classe non définie, cela sera déclenché. Regardez l'exemple suivant : printit.class.php :<?php class PRINTIT { function doPrint() { echo 'hello world'; } } ?>
<? function __autoload( $class ) { $file = $class . '.class.php'; if ( is_file($file) ) { require_once($file); } } $obj = new PRINTIT(); $obj->doPrint();?>
2. spl_autoload_register()
Regardez spl_autoload_register() à nouveau. Cette fonction a le même effet que __autoload. 🎜>Remplacez __autoload par la fonction loadprint. Mais loadprint ne sera pas déclenché automatiquement comme __autoload. À ce stade, spl_autoload_register() fonctionnera. Il indique à PHP d'exécuter loadprint() lorsqu'il rencontre une classe non définie.
<? function loadprint( $class ) { $file = $class . '.class.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register( 'loadprint' ); $obj = new PRINTIT(); $obj->doPrint();?>
<? class test { public static function loadprint( $class ) { $file = $class . '.class.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register( array('test','loadprint') ); //另一种写法:spl_autoload_register( "test::loadprint" ); $obj = new PRINTIT(); $obj->doPrint();?>
(PHP 5 >= 5.1.2)
spl_autoload_register — Enregistrez la fonction __autoload()Description
bool spl_autoload_register ([ callback $autoload_function ] )Enregistrez la fonction dans la pile de fonctions SPL __autoload. Activez les fonctions dans cette pile si elles ne sont pas déjà actives.
Si la fonction __autoload a été implémentée dans votre programme, elle doit être explicitement enregistrée dans la pile __autoload. Parce que la fonction spl_autoload_register() remplacera la fonction __autoload dans Zend Engine par spl_autoload() ou spl_autoload_call().
Paramètres
autoload_function
La fonction de chargement automatique à enregistrer. Si aucun paramètre n'est fourni, la fonction d'implémentation par défaut spl_autoload() d'autoload est automatiquement enregistrée.Valeur de retour
Renvoie VRAI en cas de succès, FAUX en cas d'échec.
Remarque : SPL est l'abréviation de Standard PHP Library. Il s'agit d'une bibliothèque d'extension introduite dans PHP5. Ses principales fonctions incluent l'implémentation du mécanisme de chargement automatique et de diverses interfaces ou classes Iterator. Le mécanisme de chargement automatique SPL est implémenté en pointant le pointeur de fonction autoload_func vers une fonction auto-implémentée avec fonction de chargement automatique. SPL a deux fonctions différentes spl_autoload et spl_autoload_call Différents mécanismes de chargement automatique sont implémentés en pointant autoload_func vers ces deux adresses de fonction différentes.Si vous utilisez spl_autoload_register pour enregistrer une méthode de classe et une fonction __autoload en même temps, cela sera basé sur l'ordre d'enregistrement si le fichier de classe est chargé dans la première méthode ou fonction enregistrée. , elle ne sera pas chargée. La méthode ou la fonction de la deuxième classe enregistrée sera exécutée. Sinon, la méthode ou la fonction de la deuxième classe enregistrée sera exécutée.
classLOAD { staticfunctionloadClass($class_name) { $filename= $class_name.".class.php"; $path= "include/".$filename if(is_file($path)) returninclude$path; } } /** * 设置对象的自动载入 * spl_autoload_register — Register given function as __autoload() implementation */ spl_autoload_register(array('LOAD', 'loadClass')); /** *__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法 * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list */ spl_autoload_register( '__autoload');
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
<?php class autoloader { public static $loader; public static function init() { if (self::$loader == NULL) self::$loader = new self (); return self::$loader; } public function __construct() { spl_autoload_register ( array ($this, 'model' ) ); spl_autoload_register ( array ($this, 'helper' ) ); spl_autoload_register ( array ($this, 'controller' ) ); spl_autoload_register ( array ($this, 'library' ) ); } public function library($class) { set_include_path ( get_include_path () . PATH_SEPARATOR . '/lib/' ); spl_autoload_extensions ( '.library.php' ); spl_autoload ( $class ); } public function controller($class) { $class = preg_replace ( '/_controller$/ui', '', $class ); set_include_path ( get_include_path () . PATH_SEPARATOR . '/controller/' ); spl_autoload_extensions ( '.controller.php' ); spl_autoload ( $class ); } public function model($class) { $class = preg_replace ( '/_model$/ui', '', $class ); set_include_path ( get_include_path () . PATH_SEPARATOR . '/model/' ); spl_autoload_extensions ( '.model.php' ); spl_autoload ( $class ); } public function helper($class) { $class = preg_replace ( '/_helper$/ui', '', $class ); set_include_path ( get_include_path () . PATH_SEPARATOR . '/helper/' ); spl_autoload_extensions ( '.helper.php' ); spl_autoload ( $class ); } } //call autoloader::init (); ?>
Articles connexes recommandés :
1.Introduction au mécanisme de chargement automatique PHP - fonction spl_autoload_register(), chargement automatique de la classe PHP
2.
Comment utiliser spl_autoload_register pour implémenter l'autoloading automatique chargement Explication détaillée des exemplesRecommandations vidéo associées :
1.Tutoriel vidéo Dugu Jiujian (4)_PHP
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c
