php中的自动加载

一、概述

看到__autoload函数,感到很有意思,于是记录之。

二、Show you a code

MyClass.php:

<?
class MyClass {
    function printHelloWorld() {
        print "Hello, World\n";
    }
}

general.inc:

<?php
function __autoload($strClassName) {
    // 本地测试时,此处可以替换成本地目录
    require_once($_SERVER["DOCUMENT_ROOT"] . '/$strClassName');
}

main.php:

<?php
require_once 'general.inc';

$obj = new MyClass();
$obj->printHelloWorld();

三、总结

1.使用方法

将MyClass.php、general.inc、main.php三个文件放到同一目录下,执行php main.php。输出结果为Hello, World.

2.原理浅析

general.inc中通过传入$strClassName的不同,进而加载不同的类。
而main.php中通过require_once引入general.inc文件,进而相当于也加载了类。

发表评论

电子邮件地址不会被公开。 必填项已用*标注