[PHP-users 23920] 継承されたクラスの記述順序についての疑問
Hiroshi Ninomiya
nino @ hat.hi-ho.ne.jp
2004年 12月 16日 (木) 10:44:49 JST
二宮といいます
いつも参考にさせていただいております。
継承されたクラスの記述順序について、疑問に思ったので質問します。
以下の2つのクラスがあります
1 fooクラス
2 barクラス fooクラスを継承
以下の5つのコードを実行すると最初のコードのみ
Fatal error: Cannot instantiate non-existent class: bar in... on line 6
のエラーが発生します。
6行目は $bar = new bar();
私の頭の中では
2,3のコードがOKなら、最初のコードも動作すると思うのですが
特に 1と2のコードは同じと理解してました。
この違いについて どなたかアドバイスお願いします。
別に動くように書けばいいか って思ったのですが なんとなく頭がすっきりし
ないので
マニュアルや過去ログを探してみたのですが、それらしき記述は見つけられませ
んでした。
よろしくお願いします。
環境は以下です。
RH9
Apache1.3.33
PHP4.3.9
1 動作NG
<?php
include_once( "fooClass.php" ); //class foo を記述したファイル
$foo = new foo();
$bar = new bar();
class bar extends foo {
function bar( ) { }
}
?>
エラー:
Fatal error: Cannot instantiate non-existent class: bar in... on line 6
2 動作OK
<?php
class foo {
function foo() { }
}
$foo = new foo();
$bar = new bar();
class bar extends foo {
function bar() { }
}
?>
3 動作OK
<?php
$foo = new foo();
$bar = new bar();
class foo {
function foo() { }
}
class bar extends foo {
function bar() { }
}
?>
4 動作OK
<?php
include_once( "fooClass.php" ); //class foo を記述したファイル
class bar extends foo {
function bar( ) { }
}
$foo = new foo();
$bar = new bar();
?>
5 動作OK
<?php
include_once( "fooClass.php" ); //class foo を記述したファイル
include_once( "barClass.php" ); //class bar を記述したファイル
$foo = new foo( );
$bar = new bar();
?>
以上、よろしくお願いします。
PHP-users メーリングリストの案内