PHP:有人能解释一下实例化类/子类的规则吗,关于类声明的顺序


PHP: Can someone explain the rules for instaniating a class/child class, in respect to the order of class declaration?

我希望我使用的术语是正确的,如果不是,请评论,我将纠正。


# 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

注意:

除非使用自动加载,否则必须在定义类之前定义类使用。如果一个类继承了另一个类,那么父类必须是在子类结构之前声明。此规则适用于继承其他类和接口的类。