PHP自动加载
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中?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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标准也可以