- ベストアンサー
PHP クラスの中にクラス
PHPでクラスの中にクラスを指定するのは不可能なことなのでしょうか? <例> name.php <? require("list.ini"); $list = new Select; $list->doSelect($a); <中略> ?> list.ini <? class Select{ function doSelect($qu){ require("col.ini"); $col = new Col; $col->doCol($ab,$ac); <中略> } ?> col.ini <? class Col{ function doCol($a,$b){ <中略> } ?> とすると Fatal error: Cannot redeclare class エラーがでます。 不可能なのでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
書き方の問題ですね。 col.ini のクラス宣言部 class Col{ 省略 } を list.ini の先頭に <? class Col{ 省略 } class Select{ function doSelect($qu){ $col = new Col; $col->doCol($ab,$ac); 省略 } } の様に1つのファイルにまとめて記述してしまうか、 または、 list.ini の先頭でclass Select{ の前に require_once("col.ini"); class Select{ function doSelect($qu){ // require("col.ini"); // この行は削除 $col = new Col; 省略 } } の様にすれば良いと思います。
その他の回答 (1)
- duckling
- ベストアンサー率47% (88/185)
list.iniの class Select 内のfunctionの中ではなく、 class Select の外で呼び出してはどうでしょう? 「classの中にclass」というよりも、 functionの中にclassを書くことは出来ないと思いますよ。 なので、 list.ini <? require "col.ini"; class Select{ $col = new Col; <中略> }
お礼
ありがとうございます。 classが1ファイルに2つ書けるとは知りませんでした。