Maison > Article > développement back-end > Explication détaillée d'exemples de mécanisme de chargement automatique pour le chargement automatique des fonctions personnalisées PHP
Cet article présente principalement l'exemple du mécanisme de chargement automatique PHP. La structure du fichier est la suivante. Il existe 2 façons d'effectuer le chargement automatique. Les amis dans le besoin peuvent se référer à
2, spl_autoload_register()
Le code est le suivant :
liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./* -rw-rw-r-- 1 liuyuan liuyuan 800 Feb 19 11:39 ./func_autoload.php -rw-rw-r-- 1 liuyuan liuyuan 906 Feb 19 11:28 ./spl_autoload.php ./include: total 16 drwxrwxr-x 2 liuyuan liuyuan 4096 Feb 19 11:42 ./ drwxrwxr-x 3 liuyuan liuyuan 4096 Feb 19 11:43 ../ -rw-rw-r-- 1 liuyuan liuyuan 142 Feb 19 11:42 aClass.php -rw-rw-r-- 1 liuyuan liuyuan 143 Feb 19 11:42 bClass.php
Premier aperçu de la fonction personnalisée méthode :
Le code est le suivant :
<?php define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '</ br>'); print_r(get_included_files()); echo EOL; print get_include_path(); echo EOL; //set_include_path(get_include_path().PATH_SEPARATOR.'/var/www/ly_php/php_spl/include/'); //set_include_path(dirname(FILE).'/include'); //set_include_path(dirname(FILE).'/include/'); function autoload($className){ $filename = './include/'.$className.'.php'; //$filename = './include/'.$className.'.php'; //$filename = '/var/www/ly_php/php_spl/include/'.$className.'.php'; if(file_exists($filename)){ include_once $filename; }else{ exit('no file'); } } $a = new aClass(); $b = new bClass(); print_r(get_included_files()); ?>
Le résultat de l'exécution est le suivant :
Le code est le suivant :
liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php func_autoload.php Array ( [0] => /var/www/phpgcs/php_autoload/func_autoload.php ) .:/usr/share/php:/usr/share/pear aClass is loaded bClass is loaded Array ( [0] => /var/www/phpgcs/php_autoload/func_autoload.php [1] => /var/www/phpgcs/php_autoload/include/aClass.php [2] => /var/www/phpgcs/php_autoload/include/bClass.php )
Deuxième méthode :
Le code est le suivant :
<?php class myLoader{ public static function autoload($className){ $filename = './include/'.$className.'.php'; if(file_exists($filename)){ include_once $filename; }else{ exit('no file'); } } } define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); spl_autoload_register(array('myLoader', 'autoload')); /** *autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法 * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list */ //spl_autoload_register( 'autoload' ); error_reporting (E_ALL^E_NOTICE^E_WARNING^E_ERROR); error_reporting(E_NOTICE | E_WARNING ); $a = new aClass(); print_r(get_included_files()); echo EOL; $b = new bClass(); echo EOL; ?>
Le résultat en cours d'exécution est le suivant :
Le code est le suivant :
liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php spl_autoload.php aClass is loaded Array ( [0] => /var/www/phpgcs/php_autoload/spl_autoload.php [1] => /var/www/phpgcs/php_autoload/include/aClass.php ) bClass is loaded
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!