我尋找一個PHP函數簽名的確切類型Required Parameter
的PHP函數所需的參數混亂
初始化是否只與NULL使它成爲一個可選的參數?即
function foo($optional=NULL, $OptionalOrRequired="Optional Or Required", $required){}
我對第二個參數感到困惑,它是否在Required或Optional參數中?
UPDATE
我使用reflection
讓所有和所需的功能參數
public function getPlayer($params=3, $c){}
// results
$reflection->getNumberOfParameters() -> 2
$reflection->getNumberOfRequiredParameters() -> 2 // it should be one
public function getPlayer($params=3, $c, $x=NULL)
// results
$reflection->getNumberOfParameters() -> 3
$reflection->getNumberOfRequiredParameters() -> 2
正如我在一個答案,默認自帶之前需要得到的,這是什麼原因的反射功能返回所需參數的錯誤數量?
感謝
基本上,你從函數聲明中省略了參數的右邊,即'= null',那麼它是必需的,否則如果沒有提供,參數就會假設你在參數聲明右邊指定的默認值。 – Gavin
感謝您的快速回復加文,我真的很困惑這個NULL與我在第二個參數中使用的實際值。在給定的方法簽名是第二個參數可選或需要? – Junaid
可選的,因爲你已經提供了它的默認值,如果用戶在調用它時不提供一個值。 – Gavin