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