「親クラスが別ファイルにある場合、小クラスが宣言される前に小クラスは実行できない。」ということに気が付きました。 例えば、次のように親子のクラスを別ファイルに作って、child.phpを実行してみます。 すると、ChildClassが宣言される前にChildClassを実行しようとすると、ChildClassが見つからないというエラーが発生します。
class ParentClass
{
public static function main()
{
var_dump("I'm parent class :)");
}
}
require 'parent.php';
ParentClass::main();
ChildClass::main(); // ここで Fatal error: Class 'ChildClass' not found が発生します
class ChildClass extends ParentClass
{
public static function main()
{
var_dump("I'm child class :)");
}
}
ParentClass::main();
ChildClass::main(); // こっちはもちろん大丈夫
ためしに親クラスを同じファイルで宣言してみます。すると、上のようなFatalは起きなくなります。
class ParentClass
{
public static function main()
{
var_dump("I'm parent class :)");
}
}
ParentClass::main();
ChildClass::main(); // 同じファイルなら問題ない
class ChildClass extends ParentClass
{
public static function main()
{
var_dump("I'm child class :)");
}
}
ParentClass::main();
ChildClass::main();
トラバURL : http://suin.asia/trackback/483
氷川 XOOPS Module 開発室