首頁 >後端開發 >php教程 >為什麼 PHP 8.0 會拋出「必需參數 $xxx 跟隨可選參數 $yyy」?

為什麼 PHP 8.0 會拋出「必需參數 $xxx 跟隨可選參數 $yyy」?

Patricia Arquette
Patricia Arquette原創
2024-12-03 07:39:13558瀏覽

Why Does PHP 8.0 Throw

PHP 錯誤:「必需參數$xxx 跟隨選用參數$yyy」

升級到PHP 8.0 時,開發人員可能會遇到棄用錯誤說明必需參數跟隨可選參數。此錯誤是由於錯誤使用所需函數參數的預設值而引起的。

問題描述:

之前,在 8.0 之前的 PHP 版本中,可以使用透過為必需參數分配預設值來混合必需參數和可選參數。然而,這種做法由於其固有的缺陷而已被棄用。

例如,考慮以下 PHP 程式碼:

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

在此程式碼中,$var1 是一個必需參數,具有預設值為 2。 $var2 也是必需參數,沒有預設值。此程式碼在早期 PHP 版本中可以正常運作,但在 PHP 8.0 中會觸發棄用錯誤。

新要求:

在 PHP 8.0 及更高版本中,現在要求必需的參數在可選參數之前聲明。此變更可確保在呼叫函數時提供所有必需的參數,從而消除潛在的混亂和錯誤來源。

解決方案:

要解決該錯誤,只需刪除先前所需參數的預設值。程式碼應重寫如下:

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

透過進行此更改,該函數將遵循新的 PHP 要求,並且將不再觸發棄用錯誤。

以上是為什麼 PHP 8.0 會拋出「必需參數 $xxx 跟隨可選參數 $yyy」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn