程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP基礎之Autoload

PHP基礎之Autoload

編輯:關於PHP編程

PHP的自動加載autoload機制很重要,這裡做2個小練習   原創文章,轉載請注明:http://www.cnblogs.com/phpgcs   文件結構如下,2種方式實現自動加載   1,自定義函數   2,spl_autoload_register()     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      首先看自定義函數方式:   <?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()); ?>   運行結果如下:   + View Code          第二種方式:     <?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; ?>   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved