Deprecated: Required parameter $xxx follows optional parameter $yyy in...
自從升級到 PHP 8.0 後,執行以下程式碼時會拋出此錯誤:
function test_function(int $var1 = 2, int $var2) { return $var1 / $var2; }
這在過去版本的 PHP 中沒有問題。
沒有預設值的必要參數應該放在第一位。
function test_function(int $xxx, int $yyy = 2) { return $xxx * $yyy; }
這種函數宣告方式在 PHP 8.0 中已被棄用。像這樣編寫函數從來沒有意義,因為所有參數(直到最後一個)必需的一個)需要在呼叫函數時指定。它也正在使用 造成混亂 ::getNumberOfRequiredParameters" rel="noreferrer">ReflectionFunctionAbstract 類別來分析函數和方法。
ReflectionFunctionAbstract
新的棄用只是確保函數簽名遵循常識性假設,即必須出現的必需參數應始終在可選參數之前聲明。
應該會重寫該函數以刪除早期參數的預設值。由於在不聲明所有參數的情況下永遠無法呼叫該函數,因此這對其功能應該沒有影響。
function test_function(int $var1, int $var2) { return $var1 / $var2; }
沒有預設值的必要參數應該放在第一位。
這種函數宣告方式在 PHP 8.0 中已被棄用。像這樣編寫函數從來沒有意義,因為所有參數(直到最後一個)必需的一個)需要在呼叫函數時指定。它也正在使用 造成混亂 ::getNumberOfRequiredParameters" rel="noreferrer">
ReflectionFunctionAbstract
類別來分析函數和方法。新的棄用只是確保函數簽名遵循常識性假設,即必須出現的必需參數應始終在可選參數之前聲明。
應該會重寫該函數以刪除早期參數的預設值。由於在不聲明所有參數的情況下永遠無法呼叫該函數,因此這對其功能應該沒有影響。