php自動載入autoload機制樣本分享

來源:互聯網
上載者:User

 這篇文章主要介紹了php自動載入autoload機制樣本,檔案結構如下,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 16drwxrwxr-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());?>  運行結果如下: 代碼如下: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/pearaClass is loadedbClass is loadedArray(    [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)  第二種方式: 代碼如下:<?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;?>  運行結果如下:代碼如下:liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php spl_autoload.php aClass is loadedArray(    [0] => /var/www/phpgcs/php_autoload/spl_autoload.php    [1] => /var/www/phpgcs/php_autoload/include/aClass.php) bClass is loaded 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.