将参数传递给Yii中的函数

将参数传递给Yii中的函数,yii,Yii,我在main.php文件中设置了以下内容: 'params'=>array( 'TOTAL_ACCOUNT_NUMBER'=>'500100' ) 我可以使用Yii::app()->params['TOTAL\u ACCOUNT\u NUMBER'成功访问数据 我希望将此作为默认值传递给如下方法: public function myMethod($acctNum=Yii::app()->params['TOTAL_ACCOUNT_NUMBER']) { ... }

我在main.php文件中设置了以下内容:

'params'=>array(
   'TOTAL_ACCOUNT_NUMBER'=>'500100'
)
我可以使用Yii::app()->params['TOTAL\u ACCOUNT\u 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;
}
但是,是否有一种更简单的方法来格式化原始方法以避免语法错误


谢谢

您正在调用参数列表中的函数。(Yii::app()),根据您的错误,这在PHP中是不允许的

默认值必须是常量表达式,而不是(例如)变量、类成员或函数调用

您自己的解决方案将是一个很好的解决方案。

您能在函数中传入“500100”作为默认值吗?
如果应用程序中的参数值发生变化,这显然不是正确的方法。但是,如果参数值是常量,则可以将该值作为默认值传递给函数。

感谢您的回答和参考。np,很抱歉给您一个“不可得”的答案。函数将执行计算,并且大多数时间将使用定义为常量,但应用程序有时会使用备用帐户。这就是为什么我想提供覆盖选项。此外,帐户号可能会更改,我不想对其进行硬编码。谢谢。