Comment appeler __autoload () en code php
Je suis nouveau en php et je veux utiliser php5 __autoload fonctionnalité dans mon code. Je l'ai écrit dans mon code ci-dessous index.php mais je ne comprends pas quand et comment je dois l'appeler __autoload fonction.
function __autoload($class) {
if (file_exists($class . '.php')) {
include($class . '.php');
} else {
throw new Exception('Unable to load class named $class');
}
}
J'ai vu ce fil aussi mais je n'ai pas autochargeur de classe dans mon application. N'besoins de chaque application dans une classe à part, afin d'utiliser le chargement automatique? Si non puis-je avoir une seule fonction comme ci-dessus et terminer la tâche?
Quelqu'un peut-il expliquer comment l'appel ci-dessus __autoload fonction dans mon code php?
source d'informationauteur pabz
Vous devez vous connecter pour publier un commentaire.
Vous n'appelez pas
__autoload()
vous-même, PHP ne quand il essaie de trouver de la mise en œuvre d'une classe.Par exemple...
...cela appel
__autoload()
en passantCustomClass
comme argument. Ce (stupide pour l'exemple du saké)__autoload()
mise en œuvre va alors tenter d'inclure un fichier par virement de bord duphp
extension sur la fin.En aparté, vous devez utiliser
spl_autoload_register()
à la place. Vous pouvez avoir plusieurs implémentations, utile lors de l'utilisation de plusieurs bibliothèques avec auto-chargeuses.Source.
En PHP __autoload() est une méthode magique, signifie automatiquement aux appels lorsque vous essayez de créer un objet de la classe, et si le moteur PHP ne trouve pas la classe dans le script c'vais essayer d'appeler __autoload() la méthode magique.
Vous pouvez la mettre en œuvre comme indiqué ci-dessous exemple:
Il va inclure automatiquement tous les fichiers de classe lors de la création d'un nouvel objet.
P. S. Pour que cela fonctionne, vous aurez à donner classe de nom de fichier de même que le nom de la classe.
Les gars, vous devez utiliser
require_once
au lieu deinclude
qui va manger votre mémoireLa meilleure façon est:
Ne pas utiliser d' __autoload() au lieu d'utiliser spl_autoload_register. Voir le manuel php qui dit
spl_autoload_register() fournit un moyen plus souple de remplacement pour le chargement automatique des classes. Pour cette raison, l'aide d' __autoload() n'est pas recommandée et peut être obsolète ou supprimée dans le futur.
vous pouvez également utiliser
spl_autoload_register()
pour charger les fichiers php et c'est beaucoup mieux que__autoload
par exemple :