PHP自动加载
怪我咯
怪我咯 2017-04-10 16:49:34
0
1
337
namespace 'Test'; class A { }
namespace 'Test'; include 'A.php'; class B extends A { }
namespace 'Test'; include 'B.php'; class C { $b = new B(); }

现在的目的是取消B中的include 'A.php';,达到自动加载A的目的,B是A的子类,A可能有B2、B3等等很多个子类,如何做到自动加载父类A呢?
自动加载方法写在A中还是C中?

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信 (1)
左手右手慢动作

首先,建议用spl_autoload_register()函数,注册一个你自己定义好的autoload函数,伪代码大体如下:
`
function autoload($classname){
include $classname;
}
spl_autoload_register('autoload');
`
其实,这个自定义autoload函数实现的关键是你的类与目录的规则,首先要定下目录规则,这个文件存在于哪个目录中,然后根据规则实现加载定义.
比较通用的做法是使用命名空间,命名空间的层级和目录层级都一一对应.举个例子:
namespace Model\User;
那么,这个php文件所在目录就是Model文件夹->User文件夹

如果我说的还是不够清楚,楼主用关键字 " 命名空间 autoload " 搜一下就可以了,或者搜一下PHP的PSR-0标准也可以

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!