0

私はこれをmain.phpファイルに設定しました:

'params'=>array(
   'TOTAL_ACCOUNT_NUMBER'=>'500100'
)

Yii :: app()->params['TOTAL_ACCOUNT_NUMBER']を使用してデータに正常にアクセスできます

これをデフォルトとして次のようなメソッドに渡したいと思います。

public function myMethod($acctNum=Yii::app()->params['TOTAL_ACCOUNT_NUMBER']) {
  ...
}

これにより、構文エラーが発生します:予期しない'('。

私はおそらく次のような回避策を作成することができます:

public function myMethod($acctNum=null) {
   $acctNum = !isset($acctNum) ? Yii::app()->params['TOTAL_ACCOUNT_NUMBER'] : $acctNum;
}

しかし、構文エラーを回避するために元のメソッドをフォーマットする簡単な方法はありますか?

ありがとう

4

2 に答える 2

1

パラメータリスト内で関数を呼び出しています。(Yii :: app())これは、エラーによると、PHPでは許可されていません。

デフォルト値は、(たとえば)変数、クラスメンバー、または関数呼び出しではなく、定数式である必要があります。

http://php.net/manual/en/functions.arguments.phpから

あなた自身の回避策は素晴らしい解決策になるでしょう。

于 2012-12-04T16:33:59.277 に答える
0

関数のデフォルト値として「500100」を渡すことはできますか?アプリケーション内でパラメータ値が変更された場合、それは明らかに正しいアプローチではありません。ただし、定数の場合は、その値をデフォルトとして関数に渡すことができます。

于 2012-12-04T16:42:54.167 に答える