2013-02-25 40 views
0

我有一個源代碼,但我有一個問題。方法的缺省參數?

你可以在這裏找到源代碼:http://pastebin.com/6JHkTFEv

錯誤是在這裏:http://i.imgur.com/V4pPZkI.png

爲什麼給我總是此錯誤消息?

問題是此行中:$ip_address = $this->get_client_ip()

我可以給一個默認參數的方法,方法:

public function upload_sms_data($sms_id, $prefix, $uzenet, $telefonszam, $kategoria, $ip_address = $this->get_client_ip()) { 

該計劃是由最後一個參數是否停止?

回答

0

您不能將參數的默認值設置爲函數調用的結果。它必須是一個價值。

+0

謝謝你的答案的結果! – 2013-02-25 18:14:13

0

不,你不能那樣做。最好的辦法是將null作爲默認值,然後在該方法內部,如果該參數爲null,則使用getter。

upload_sms_data($sms_id, $prefix, $uzenet, $telefonszam, $kategoria, $ip_address = null) { 
    $ip_address = $ip_address === null ? $this->get_client_ip() : $ip_address; 
} 
+0

謝謝你的回答!作品... – 2013-02-25 18:13:52

0

你可以給一個默認值,而不是一個需要運行時間計算或執行諸如函數調用

public function upload_sms_data($sms_id, $prefix, $uzenet, $telefonszam, $kategoria, $ip_address = NULL) { 
    if ($ip_address === NULL) { 
     $ip_address = $this->get_client_ip(); 
    } 
+0

謝謝你的回答!作品... – 2013-02-25 18:13:05