spl_autoload_register

creationdev

Documentation

Conception web extra
Conception web extra

5000$ CAD

Conception web microsite
Conception web microsite

1000$ CAD

Référencement web stratégique
Référencement web stratégique

1000$ CAD

Conception web ecommerce
Conception web ecommerce

2500$ CAD

Conception web standard
Conception web standard

2500$ CAD

Référencement web expert
Référencement web expert

750$ CAD

Référencement web organique
Référencement web organique

300$ CAD

Formation référencement web
Formation référencement web

100$ CAD

Conception d'application web
Conception d'application web

100$ CAD

Référencement web optimisé
Référencement web optimisé

500$ CAD

Fonction

Fonction

spl_autoload_register

spl_autoload_register

Page Vue 15 nov. 2018
Page Vue 17 fois

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_register — Enregistre une fonction en tant qu'implémentation de __autoload()

Description

spl_autoload_register(?callable $callback = null, bool $throw = true, bool $prepend = false): bool

spl_autoload_register() enregistre une fonction dans la pile __autoload() fournie. Si la pile n'est pas encore active, elle est activée.

Si votre code dispose déjà d'une fonction __autoload(), alors cette fonction doit explicitement enregistrer la pile __autoload. Ceci est du au fait que spl_autoload_register() remplace le cache du moteur pour la fonction __autoload() par soit spl_autoload(), soit spl_autoload_call().

Si vous devez utiliser plusieurs fonctions d'autochargement, la fonction spl_autoload_register() est faite pour cela. Elle crée une file d'attente de fonctions d'autochargement, et les exécute les unes après les autres, dans l'ordre où elles ont été définies. A contrario, la fonction __autoload() ne peut être définie qu'une seule fois.

Liste de paramètres

callback

La fonction d'autoload à enregistrer. Si null, alors, l'implémentation par défaut de la fonction spl_autoload() sera enregistrée.

callback(string $class): void

La class ne contiendra pas le backslash initial d'un identifiant entièrement qualifié.

throw

Ce paramètre spécifie si spl_autoload_register() doit lancer des exceptions lorsque le callback n'a pu être enregistré.

Avertissement

Ce paramètre est ignoré à partir de PHP 8.0.0, et une notice sera émise s'il est défini à false. spl_autoload_register() lancera toujours une TypeError avec des arguments non valides.

prepend

Si ce paramètre vaut true, spl_autoload_register() ajoutera la fonction au début de la pile de l'autoloader au lieu de l'ajouter à la fin de la pile.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 callback est désormais nullable.

Exemples

Exemple #1 Exemple avec spl_autoload_register() comme remplacement d'une fonction __autoload()

<?php

// function __autoload($class) {
// include 'classes/' . $class . '.class.php';
// }

function my_autoloader($class) {
include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

// Ou, en utilisant une fonction anonyme
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});

?>

Exemple #2 Exemple avec spl_autoload_register() où la classe n'est pas chargée

<?php

namespace Foobar;

class Foo {
static public function test($class) {
print '[['. $class .']]';
}
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test');

new InexistentClass;

?>

Résultat de l'exemple ci-dessus est similaire à :

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Exemple #3 L'identifiant sera fourni sans le backslash initial.

<?php

spl_autoload_register(static function ($class) {
var_dump($class);
});

class_exists('RelativeName');
class_exists('RelativeName\\WithNamespace');
class_exists('\\AbsoluteName');
class_exists('\\AbsoluteName\\WithNamespace');

?>

L'exemple ci-dessus va afficher :

string(12) "RelativeName"
string(26) "RelativeName\WithNamespace"
string(12) "AbsoluteName"
string(26) "AbsoluteName\WithNamespace"

Voir aussi

  • __autoload() - Tente de charger une classe indéfinie


Source : http://www.php.net/
Ref : fonction-spl-autoload-register.php




Contact

Contact

Veuillez saisir les infos dans le formulaire d'identification
suivant pour concevoir et référencer votre site.









Veuillez saisir votre message.

Carte d'affaires

Affichage de la carte d'affaires recto/verso.

Carte d'affaires recto
Carte d'affaires verso

Partagez

Partagez

Discussion ayant comme sujet la page spl_autoload_register.

©2025 creationdev -  F.A.Q. -  Soutien -  Haut de page
THÈMES: