正しい用語を使用していることを願っています。そうでない場合は、コメントしてください。修正します。
#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 による以下の回答からのものです。共有ホストで自動読み込みが有効になっているかどうかはわかりませんが、リストした例に関連してその引用に頭を悩ませることはできません.
ノート:
オートローディングを使用しない場合、クラスは使用前に定義する必要があります。クラスが別のクラスを拡張する場合、親クラスは子クラス構造の前に宣言する必要があります。この規則は、他のクラスおよびインターフェイスを継承するクラスに適用されます。