2012-12-04 77 views
0
運作

我已經將這個在我的main.php文件:傳遞PARAM Yii中

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

我可以使用Yii ::應用程序()成功地訪問數據 - > 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; 
} 

但有格式化原始的方法,只是避免語法錯誤更簡單的方法?

謝謝

回答

1

您正在調用參數列表中的函數。 (Yii :: app()),根據你的錯誤不允許在PHP中使用。

The default value must be a constant expression, not (for example) a variable, a class member or a function call.

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

你自己的解決方法將是一個很好的解決方案。

+0

感謝您的回答和參考。 – user167850

+0

np,對不起,給你一個不去 – dmaij

0

你可以在你的函數中傳入「500100」作爲默認值嗎? 如果參數值在應用程序中發生變化,那顯然不是正確的方法。但是,如果這是一個常數,那麼可以將該值作爲默認值傳遞給您的函數。

+0

該功能將執行計算,大部分時間將利用定義爲常數的帳戶,但應用程序有時會使用備用帳戶。這就是爲什麼我想提供覆蓋選項。此外,帳號可能會更改,我不想在整個過程中對其進行硬編碼。謝謝。 – user167850

相關問題