• ベストアンサー

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 エラーがでます。 不可能なのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

書き方の問題ですね。 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;  省略 } } の様にすれば良いと思います。

fm0606
質問者

お礼

ありがとうございます。 classが1ファイルに2つ書けるとは知りませんでした。

その他の回答 (1)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

list.iniの class Select 内のfunctionの中ではなく、 class Select の外で呼び出してはどうでしょう? 「classの中にclass」というよりも、 functionの中にclassを書くことは出来ないと思いますよ。 なので、 list.ini <? require "col.ini"; class Select{ $col = new Col; <中略> }

関連するQ&A