- ベストアンサー
クラスの中でincludeするとき、コンストラクタ
例2 ▽クラス定義内でのinclude - id:anatooのブログ http://d.hatena.ne.jp/anatoo/20080106/1199616528 ・クラスの中でincludeすると、コンストラクタ以外だとエラーになるのですが、なんででしょうか? ・なぜ、syntax errorになるのでしょうか? ・コンストラクタならいい、という決まりなのでしょうか? ・それはどこに書いてあるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コンストラクタがどうという話じゃなく、 Class直下ではvarとかfunctionしか書けないという話かと。 かつ、varとかfunctionの引数には動的なものは使えない。
その他の回答 (2)
- kinta03
- ベストアンサー率41% (7/17)
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")); ?> 自分的に、新発見でした。 お役に立てなくて御免なさい。
お礼
回答ありがとうございましたー
- kinta03
- ベストアンサー率41% (7/17)
携帯から失礼します。 いまテスト出来ませんが includeでは無く普通に書いて実験してみて下さい。 publicが余計の様な気がしますが? 何でclassのfunctionがpublicなんでしょう?
お礼
回答ありがとうございましたー
お礼
回答ありがとうございましたー