Maison > Article > développement back-end > Chargement automatique des classes PHP
Cet article présente le chargement automatique des classes PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Écrivez d'abord un HumanModel.php
class HumanModel { public function t() { echo '人类<br >'; } }
// =Exemple= //
require('./HumanModel.php');$lisi = new HumanModel();$lisi->t(); // 人类
// =Chargement automatique des classes= //
function __autoload($c) { echo '~~~~~~~~~',$c,'~~~~~~~~'; }$ming = new Dog();
// ===Notes Partie 1===
Chargement automatique des classes
Avant de signaler une erreur, nous pouvons utilisez également la fonction __autoload
pour obtenir une opportunité d'intervention
et transmettra automatiquement le "nom de classe" à la fonction __autoload
*/
function __autoload($c) { echo '我先自动加载'; echo './' . $c . '.php'; echo '<br >'; require('./' . $c . '.php'); }$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() { // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类 class Bird { public static function sing() { echo '百灵鸟放声歌唱!<br >'; } } }// 必须要调用函数然后才能执行内部test(); Bird::sing(); /* Bird::sing(); 未定义类 转到上面类的自动加载函数中,于是报错如下: Warning: require(./Bird.php): failed to open stream: No such file or directory 找不到Bird这个php */
// ===Notes Partie 2===
Chargement automatique Puis-je utiliser uniquement la fonction __autoload ?
Réponse : Non, vous pouvez réellement spécifier une fonction.
Utilisez la fonction système spl_autoload_register pour notifier
*/
spl_autoload_register('zidongjiazai');function zidongjiazai($c) { require('./' . $c . '.php'); }$HumanModel = new HumanModel();$HumanModel->t();// Astuces : Nous pouvons également enregistrer une méthode statique de la classe pour servir de fonction de chargement automatique Écrivez d'abord un HumanModel.php
class HumanModel { public function t() { echo '人类<br >'; } }
// =Citation= //
require('./HumanModel.php');$lisi = new HumanModel();$lisi->t(); // 人类
// =Chargement automatique des classes= //
function __autoload($c) { echo '~~~~~~~~~',$c,'~~~~~~~~'; }$ming = new Dog();
// ===Notes Partie 1====
Chargement automatique des classes
Avant de signaler une erreur, nous pouvons également utiliser la fonction __autoload
pour obtenir une opportunité d'intervention
et passera automatiquement la "classe name" à la fonction __autoload
*/
function __autoload($c) { echo '我先自动加载'; echo './' . $c . '.php'; echo '<br >'; require('./' . $c . '.php'); }$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() { // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类 class Bird { public static function sing() { echo '百灵鸟放声歌唱!<br >'; } } }// 必须要调用函数然后才能执行内部test(); Bird::sing(); /* Bird::sing(); 未定义类 转到上面类的自动加载函数中,于是报错如下: Warning: require(./Bird.php): failed to open stream: No such file or directory 找不到Bird这个php */
// ===Notes Partie 2===
Automatiquement Le chargement peut-il être effectué uniquement à l'aide de la fonction __autoload ?
Réponse : Non, vous pouvez réellement spécifier une fonction.
Utilisez la fonction système spl_autoload_register pour notifier
*/
spl_autoload_register('zidongjiazai');function zidongjiazai($c) { require('./' . $c . '.php'); }$HumanModel = new HumanModel();$HumanModel->t();// Astuces : Nous pouvons également enregistrer une méthode statique de la classe en tant que fonction de chargement automatique Connexe recommandations :
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!