2011-07-12 43 views
2

我有一個函數,它接受兩個參數,但我想第二個是可選的:關於調用沒有足夠參數的PHP函數的規則是什麼?

function myFunction($arg1, $arg2) { 
    //blah 
    //blah 
    if (isset($arg2)) { 
    //blah 
    } else { 
    //blah 
    } 
} 

所以,當我把它,我可能會做myFunction("something")或者我可以做myFunction("something", "something else")

當我只包括一個參數,PHP給出了這樣的警告:

警告:缺少論據2 myFunction的(),...

所以它的工作原理,但很明顯,開發商皺眉之上。

它是確定要做到這一點還是應該我""false0路過的第二個參數的時候,我不希望使用它,而是用測試的isset()是什麼?

我注意到很多人在JavaScript中調用函數時錯過了參數,這就是爲什麼我會問它是否也是在PHP中完成的。

回答

6

它通過設定一些參數可選/給它一個默認的實現:

function myFunction($arg1, $arg2 = false)

那麼你可以這樣調用該函數:

myFunction('something');

myFunction('something', 'something else');

+0

謝謝,這很完美。 –

3

您可以將其設置在您的函數聲明中:

function myFunction($arg1, $arg2 = NULL) { 

這樣,第二個參數是可選的。請注意,可選參數必須在最後,您不能在它們之後有任何非可選參數。

1

您需要設置一個默認的函數聲明的說法,這樣的:

function myFunction($arg1, $arg2 = false) { 
    //blah 
    //blah 
    if (isset($arg2)) { 
    //blah 
    } else { 
    //blah 
    } 
} 
0

定義功能參數的默認值:

public function foo($arg1, $arg2 = 'default') { 
    //yourfunction 
} 
相關問題