2014-01-24 84 views
0

我有一個PHP函數,因爲業務需求已更改而被要求更新。原來的功能是這樣工作的。帶有默認值的PHP函數byref參數

function myFunction($var1, $var2, $var3) { 
    CODE GOES HERE 
} 

對於新版本,需要第四個可選參數。我知道我可以這樣做:

function myFunction($var1, $var2, $var3, $var4 = "") { 
    CODE GOES HERE 
} 

我創建了新的代碼,它工作正常。我剛剛被告知,當一個值傳遞給最後一個參數時,它需要是byref。我在這裏搜索了PHP文檔和問題,但沒有看到這方面的可能性。我會假設代碼會這樣工作:

function myFunction($var1, $var2, $var3, &$var4 = "") { 
    CODE GOES HERE 
} 

這項工作? PHP是否允許一個變量被ref傳遞,並且如果沒有傳入任何東西,它還會爲它設置一個默認值?

回答

1

是的,它確實有效。

這裏在ideone.com一看就看到它在行動。

<?php 

function test(&$var = "test") { 
    echo $var; 
} 

test(); 

輸出

test 

然而,有一個警告。如果你傳遞一個參數,它需要是一個變量的引用。以下將不起作用:

test("Testing"); 

因爲"Testing"是字符串,而不是一個可供參考的變量。