• ベストアンサー

クラスの中でincludeするとき、コンストラクタ

例2 ▽クラス定義内でのinclude - id:anatooのブログ   http://d.hatena.ne.jp/anatoo/20080106/1199616528 ・クラスの中でincludeすると、コンストラクタ以外だとエラーになるのですが、なんででしょうか? ・なぜ、syntax errorになるのでしょうか? ・コンストラクタならいい、という決まりなのでしょうか? ・それはどこに書いてあるのでしょうか?

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

コンストラクタがどうという話じゃなく、 Class直下ではvarとかfunctionしか書けないという話かと。 かつ、varとかfunctionの引数には動的なものは使えない。

re97
質問者

お礼

回答ありがとうございましたー

その他の回答 (2)

  • kinta03
  • ベストアンサー率41% (7/17)
回答No.2

No.1です。 色々実験しましたがおっしゃる様にエラーになります。 >>Parse error: parse error, unexpected T_INCLUDE, expecting T_FUNCTION in H:\Ap2_hsap\home\hoge2.php on line 4 クラス定義全体をinclueすることは有っても部分的にincludeすることが無かったので全く気が付きませんでした。 以下、実験したソースです。 <?php class Vegetable { var $edible; var $color; //上記2行をincludeするとエラーになる function Vegetable($edible, $color="green") { // $this->edible = $edible; // $this->color = $color; include 'Vegetable2.php';//上記2行をincludeするとOK } function is_edible() { return $this->edible; } //上記functionをincludeするとエラーになる function what_color() { // return $this->color; include 'what_color2.php';//上記1行をincludeするとOK } } print_r( new Vegetable(true, "blue")); ?> 自分的に、新発見でした。 お役に立てなくて御免なさい。

re97
質問者

お礼

回答ありがとうございましたー

  • kinta03
  • ベストアンサー率41% (7/17)
回答No.1

携帯から失礼します。 いまテスト出来ませんが includeでは無く普通に書いて実験してみて下さい。 publicが余計の様な気がしますが? 何でclassのfunctionがpublicなんでしょう?

re97
質問者

お礼

回答ありがとうございましたー