源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php自动加载autoload机制示例分享

  • 时间:2020-01-01 03:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php自动加载autoload机制示例分享
1,自定义函数 2,spl_autoload_register()
[u]复制代码[/u] 代码如下:
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
首先看自定义函数方式:
[u]复制代码[/u] 代码如下:
<?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()); ?>
运行结果如下:
[u]复制代码[/u] 代码如下:
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 )
第二种方式:
[u]复制代码[/u] 代码如下:
<?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; ?>
运行结果如下:
[u]复制代码[/u] 代码如下:
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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部