PHP自动加载

发布于 2022-09-02 08:47:24 字数 351 浏览 30 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

简美 2022-09-09 08:47:24

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文