可選參數 $yyy 位於必需參數 $xxx 之前
P粉236743689
P粉236743689 2023-10-18 12:51:21
0
2
701

Deprecated: Required parameter $xxx follows optional parameter $yyy in...

自從升級到 PHP 8.0 後,執行以下程式碼時會拋出此錯誤:

function test_function(int $var1 = 2, int $var2) {
    return $var1 / $var2;
}

這在過去版本的 PHP 中沒有問題。

P粉236743689
P粉236743689

全部回覆(2)
P粉021553460

沒有預設值的必要參數應該放在第一位。

function test_function(int $xxx, int $yyy = 2)
{
    return $xxx * $yyy;
}
P粉427877676

這種函數宣告方式在 PHP 8.0 中已被棄用。像這樣編寫函數從來沒有意義,因為所有參數(直到最後一個)必需的一個)需要在呼叫函數時指定。它也正在使用 造成混亂 ::getNumberOfRequiredParameters" rel="noreferrer">ReflectionFunctionAbstract 類別來分析函數和方法。

新的棄用只是確保函數簽名遵循常識性假設,即必須出現的必需參數應始終在可選參數之前聲明。

應該會重寫該函數以刪除早期參數的預設值。由於在不聲明所有參數的情況下永遠無法呼叫該函數,因此這對其功能應該沒有影響。

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板