- ベストアンサー
functionに括弧を使用するとエラー
Parse error: parse error, expecting `')'' in C:\XXX.php on line XX というエラーが発生します。 クラスのfunctionの引数に他のクラスを呼び出すとエラーになります。 class XXX { function XXX_XXX( $dmy = YYY:YYY_YYY() ) //ここがエラー発生行 { ・・・・・ } } class YYY { function YYY_YYY() { return 1; } } この方法は無理でしょうか? どうにかクラスを呼び出す方法が御座いましたらご教授願います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
http://jp2.php.net/manual/ja/functions.arguments.php#functions.arguments.default マニュアルに明記されていますが、関数の引数は定数式でなければならないとあります。 つまり例示された書式は通りません。 あと、横レスで申し訳ありませんが、、 >出来ればを増やしたくないなと思いまして。 ここ、何を増やしたくなかったんでしょう、行(処理)ですかね?
その他の回答 (3)
- hogehoge78
- ベストアンサー率80% (433/539)
条件分岐がダメなのであれば、実質できません。 やるとしたら function XXX_XXX($dmy){ } function XXX_XXX_auto(){ return $this->XXX_XXX(YYY::YYY_YYY()); } とでもして別のメソッドを用意するしかないです。
- yambejp
- ベストアンサー率51% (3827/7415)
>他に方法ありましたらご教授願います。 他に方法ありましたらもなにも・・・ 質問者さんの希望するやり方はできないことですし、 他の提示をしたら「なんとなくやりたくない」といわれてしまうと どんな形式なら満足するという例示がないかぎり 何を提示していいのかわかりません。
補足
ご回答ありがとうございます。 if文(分岐)を使用せずに記述が出来ればと思っております。
- yambejp
- ベストアンサー率51% (3827/7415)
こんな感じでよいのでは? <? class XXX{ function XXX_XXX($dmy = NULL ){ if(func_num_args()==0) $dmy=YYY::YYY_YYY(); print $dmy; } } class YYY{ function YYY_YYY(){ return 1; } } XXX::XXX_XXX(); XXX::XXX_XXX(2); ?>
補足
ご回答ありがとう御座います。 その方法も考えたんですが、 出来ればを増やしたくないなと思いまして。 他に方法ありましたらご教授願います。
補足
ご回答ありがとう御座います。 マニュアルからすると無理っぽいですね^^; >ここ、何を増やしたくなかったんでしょう、行(処理)ですかね? 出来れば処理を増やしたくないです。 なぜか単語がなくなっちゃってますね。 申し訳ないですm(_ _)m