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 回答