2011-12-30 88 views
0

我見過的代碼幾次這樣多參數函數冗餘的第一個參數的默認值是多少?

function my_func($arg1 = '', $arg2, $arg3) { ... 

真的是沒有辦法使用的默認值$arg,對不對?由於需要$arg2以及更多,因此您總是必須指定$arg1的值,對嗎?這意味着$arg1永遠不會使用其默認值?

+0

這ISN根本不允許用Python,我也沒有看到這方面的任何用處。 – Blender 2011-12-30 18:53:10

回答

4

PHP會引發嚴格的警告,因此非常沮喪。但是,它的行爲像第一個參數不是可選的。所以你是對的:除非你自己設置(不再像默認值那樣),否則從不使用默認值。

+0

同意。如果您使用遺留代碼並在函數中編寫處理程序(即,爲第一個值傳入NULL,然後使用is_null($ arg1)子句,則可以將預設值作爲第一個參數傳遞,但最好重新排序函數定義中的參數 – 2011-12-30 19:00:41

1

是的,你是對是錯的話,即使PHP不會顯示在這種情況下,但任何好的IDE任何錯誤或警告將會顯示警告...

enter image description here

+0

當你配置正確時,PHP會觸發'E_STRICT'警告。 – KingCrunch 2011-12-30 19:35:26