P粉6163836252023-08-16 14:16:18
沒有預設值的必要參數應該放在前面。
function test_function(int $xxx, int $yyy = 2) { return $xxx * $yyy; }
P粉4516148342023-08-16 09:03:20
這種函數宣告方式在PHP 8.0中已被棄用。像這樣編寫函數從來都沒有意義,因為在呼叫函數時,所有參數(直到最後一個必需參數)都需要指定。這也導致了混淆,因為使用ReflectionFunctionAbstract
類別來分析函數和方法時會出現問題。
新的棄用只是確保函數簽名遵循常識假設,即必需參數應該始終在可選參數之前聲明。
應該重寫函數以刪除先前參數的預設值。由於函數永遠不會在不聲明所有參數的情況下被調用,因此這對其功能不會產生任何影響。
function test_function(int $var1, int $var2) { return $var1 / $var2; }