在PHP中扩展父类是否需要包含类的文件?

use*_*206 7 php oop inheritance require

我应该包含/ require_once我在PHP中扩展的父类吗?

例如,我有一个名为Shapes的类

class Shapes {

}
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个名为的子类

require_once('shapes.php');

class Circle extends Shapes {

}
Run Code Online (Sandbox Code Playgroud)

我伸展时是否应该要求父类?或者只是使用扩展子类到它的父类,即使它们在同一个文件夹中?

Jon*_*Jon 13

您需要做一些事情才能让PHP在处理子类之前看到您的基类定义,否则会发生致命错误.

这个东西既可以是require_once基类文件的手册,也可以是自动加载(还有其他自动加载选项,但是spl_autoload_register你应该使用它).

使用哪种方法取决于范围:在编写小型测试项目时,设置自动加载可能是过度的.但随着代码库变得越来越大,自动加载变得更具吸引力,因为:

  • 它可以隐藏复杂的源文件解析逻辑(例如,如果您有基类的可配置目录;还有更多高级方案)
  • 它可以逐步配置:您可以使用多个自动加载器作为链运行,并且应用程序的每个独立模块都可以注册其独立的自动加载器,与所有其他自动加载器和平共存