我希望我使用的术语是正确的,如果不是,请评论,我将纠正。
# 1:作品
在类声明之前实例化$x = new Abc;
class Abc {
// code
}
#2:不工作
在
子类声明之前实例化(子类在父类声明之前声明)$x = new Xyz
class Xyz extends Abc {
// code
}
class Abc {
// code
}
# 3:作品
在子类声明之前实例化(在父类声明之后声明子类)
$x = new Xyz
class Abc {
// code
}
class Xyz extends Abc {
// code
}
# 4:作品
在子类声明之后实例化(子类在父类声明之前声明)
class Xyz extends Abc {
// code
}
$x = new Xyz
class Abc {
// code
}
编辑
以下引用来自@artsylar的回答。我不知道我的共享主机是否启用了自动加载,但我无法理解这句话与我列出的例子的关系。
注意:
除非使用自动加载,否则必须在定义类之前定义类使用。如果一个类继承了另一个类,那么父类必须是在子类结构之前声明。此规则适用于继承其他类和接口的类。
我想这个链接可以帮助你。http://php.net/manual/en/language.oop5.inheritance.php
注意:
除非使用自动加载,否则必须在定义类之前定义类使用。如果一个类继承了另一个类,那么父类必须是在子类结构之前声明。此规则适用于继承其他类和接口的类。