2012-06-11 34 views
1

可能重複:
PHP - Calling functions with multiple variables我是否必須始終將所有參數傳遞給PHP函數?

function test($var1=null, $var2=null, $var3=null){ 
    //smart stuff goes here 
} 

難道我每次都要調用傳遞所有變量的函數?

test(null, $var2, null); 

我想只傳遞$ var2,因爲所有其他變量都有默認值......這是可能的嗎?

在JavaScript中,我們可以傳遞一個對象給函數,PHP中是否有類似的東西?

+0

通常將一個數組(PHP有關聯數組,不需要一個對象)作爲參數傳遞,包含實際參數。 – Niko

+0

我已經做了一個研究,並且發現了這段有趣的代碼http://www.marco.org/2008/11/11/faking-named-parameters-in-php – simPod

回答

2

您只需將參數傳遞給並不包含最後一個不想使用默認值的參數。在你的例子中,你可以這樣做:

test(null, $var2); 

最後一個參數可以省略,因爲默認值是令人滿意的。但第一個必須包含,所以PHP知道你正在設置第二個參數的值。

直到PHP提供像Python這樣的命名參數,這就是它的工作方式。

+0

所以沒有別的辦法如何告訴PHP我只傳遞第二個變量? – simPod

+0

這是正確的 –