にゃあ

親クラスが別ファイルにある場合、小クラスが宣言される前に小クラスは実行できない

「親クラスが別ファイルにある場合、小クラスが宣言される前に小クラスは実行できない。」ということに気が付きました。 例えば、次のように親子のクラスを別ファイルに作って、child.phpを実行してみます。 すると、ChildClassが宣言される前にChildClassを実行しようとすると、ChildClassが見つからないというエラーが発生します。

parent.php

class ParentClass
{
	public static function main()
	{
		var_dump("I'm parent class :)");
	}
}

child.php

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は起きなくなります。

together.php

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();

コメント&トラバ

トラックバックを送る

無関係なスパムのトラックバックを防止するため、リンク先で本サイト(suin.asia)への言及が確認されないトラックバックは破棄しています。

トラバURL : http://suin.asia/trackback/483

コメントを書く

お名前* URL
本文*
合い言葉* ←「sontiolier」と入力して下さい。
* この記事の話題と関係ないコメントはどんな内容でも削除します。(移動できないので)

トラックバック

トラックバックがないのはさみしいにゃん…。

コメント

コメントはないです。誰かコメント書いてよぅ…。

Author

Submenu

Recent Entries

XOOPS Cube Dev Ring

氷川 XOOPS Module 開発室

Recent Comments

Recent Trackbacks