扩展一个类并在PHP中包含它有什么区别?

dan*_*iel 6 php oop extends include

有人可以向我解释一下它们之间的区别

include_once 'classb.php'
class A
{
     $a = new B
}
Run Code Online (Sandbox Code Playgroud)

class A extends B
{
     $a = new B
}
Run Code Online (Sandbox Code Playgroud)

是什么?

扩展类与包含.php文件有什么优点/缺点?

cha*_*aos 8

include_once在源文件中读取,在这种情况下可能有一个类定义B.您extends将类设置A继承B,即A获取所有内容,B然后可以定义自己对该基本结构的修改.这两个操作之间根本没有任何关系,并且您的$a = new B操作是无意义的(更不用说语法错误).


All*_*nde 6

如果您正在寻找更高级别的答案......

使用extends绑定A来做与B类似的操作,而在A中创建B的实例不会对A施加任何限制.

第二种方法称为组合,通常是构建OO系统的首选方法,因为它不会产生较高的类层次结构,并且长期更灵活.然而,它确实产生稍慢的代码,并且比使用extends的简单代码更多.

我的2美分