2013-12-11 34 views
4

我想通過本年度作爲函數的默認值的一個如何通過本年度在PHP函數的默認參數

我使用

date("Y") 

本年度

所以做工精細當我這樣寫功能:

function MYfUNCTION($month,$year = 2013) 
{ 
} 

但我想傳遞的,而不是2013 本年度但是當我寫這樣

function MYfUNCTION($month,$year = date("Y")) 
{ 
} 

請幫助我,這給了我一個錯誤

+0

你的'日期'參數應該是第一個,'月',第二個。當涉及到默認參數時,順序很重要。 – Leonardo

+0

爲什麼不檢查'$ year'是否設置在函數內,如果沒有設置爲'date(「Y」)'函數不能用於默認變量 – rorypicko

回答

14

您無法將函數用於默認參數值:

默認值必須爲b e常量表達式,而不是(例如)變量,類成員或函數調用。

extract from PHP doc

應設置爲默認值到函數:

function myFunction($month, $year = null) 
{  
    if(!isset($year)) { 
    $year = date('Y'); 
    } 
    echo $year.', '.$month; 
} 

myFunction('June', '2006'); // 2006, June 
myFunction(3, 2010);  // 2010, 3 
myFunction('July');   // 2013, July 
3

你可以試試這個,

function MYfUNCTION($month,$year ="") 
{ 
    if(empty($year)){ 
     $year = date($year); //Output: current year 
    } 

    echo "Year: " . $year ." Month: " . $month; 
} 
+0

如果有人打電話給函數爲'MYFUNCTION($ month,2012)'? – fvu

+0

@fvu謝謝,我已經更新了我的答案。 –

+1

事實上 - 雖然我稍微偏好zessx的解決方案的變體。 – fvu

1

沒有直接的方法直接在預先定義的格式傳遞參數,你必須通過功能把你想要的一年,你可以做更多的功能,你可以改變一年。就像在PHP中獲得curr年的func。 !希望這可以幫助。

+1

Yaaa .. Thanxxx .... –