时间:2021-07-01 10:21:17 帮助过:5人阅读
namespace 'Test';
class A
{
}
namespace 'Test';
//直接运行B会报错,提示找不到AA
include 'A.php';
//加上include这句后,就可以了
class B extends A
{
}
这个是为什么呢?俩个文件在同一个文件夹下,也在同一个目录下,不include也应该没问题,框架中常用的继承也没有include。
直接上代码吧。
namespace 'Test';
class A
{
}
namespace 'Test';
//直接运行B会报错,提示找不到AA
include 'A.php';
//加上include这句后,就可以了
class B extends A
{
}
这个是为什么呢?俩个文件在同一个文件夹下,也在同一个目录下,不include也应该没问题,框架中常用的继承也没有include。
那是因为框架在前面已经注册了自己的autoload
,所以当你需要A
时如果当前文件中没有A
这个类,那么就触发autoload
机制,通过autoload
将A
类所对应的文件include
进来。
多学学基础吧,不include怎么会能用呢,框架里肯定也是给include了,只不过是给封装好了
不使用include的 会调用autoload 到默认的文件位置寻找A类吧,很明显 当前文件夹 并不在默认位置?