Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54272
  • 博文数量: 29
  • 博客积分: 1235
  • 博客等级: 中尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-20 21:15
文章分类

全部博文(29)

文章存档

2010年(7)

2009年(22)

我的朋友

分类:

2010-01-22 14:16:51

php中autoload的兩種實現方式

方式1: 通過定義__autoload()這個function來實現

假設我們已經有了一個A.class.php的文件,裡面定義了Class A,文件內容如下:


<?PHP

class A {

    public static function print_hello(){
        print("hello A");
    }
}

?>



現在我們創建一個autoload.php的文件


<?PHP

function __autoload($classname) {
    include_once($classname . ".class.php");
}

class Load {

    public function printa() {
        A::print_hello();
    }
}

Load::printa();
?>


這裡面當我們執行autoload.php的時候就會自動幫我們載入A.class.php,并且調用A::print_hello()這個方法。

方式2: 通過spl_autoload_register()來註冊我們自己的autoload方法

創建一個autload1.php的文件,文件內容如下:



<?PHP

class Load {

    public static function autoload($classname) {
        include_once($classname . ".class.php");
    }

    public function printa() {
        A::print_hello();
    }
}

//這裡我們註冊自己的autoload方法,使用Load類裡面的autoload
spl_autoload_register(array('Load','autoload'));

Load::printa();

?>


其執行結果也一樣,會自動include_once("A.class.php"),然後幫我們調用class A 的print_hello()方法.
阅读(492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~