首頁 > 後端開發 > php教程 > PHP 8.0:為什麼現在需要位於可選參數之前?

PHP 8.0:為什麼現在需要位於可選參數之前?

DDD
發布: 2025-01-01 01:03:10
原創
811 人瀏覽過

PHP 8.0: Why Do Required Parameters Now Need to Precede Optional Ones?

PHP 8.0:必要參數跟隨選用參數

升級到PHP 8.0 後,開發者可能會遇到以下錯誤:

Deprecated: Required parameter $xxx follows optional parameter $yyy in...
登入後複製

當函數的宣告包含可選參數後面跟著必需參數時,就會出現此錯誤。例如,以下程式碼將觸發錯誤:

function test_function(int $var1 = 2, int $var2) {
    return $var1 / $var2;
}
登入後複製

澄清功能意義

在 8.0 之前的 PHP 版本中,允許此類函數聲明。然而,他們在使用 ReflectionFunctionAbstract 類別分析函數和方法時引入了不一致和混亂。

新要求

PHP 8.0 透過要求所有必需的內容強制執行更符合邏輯的方法參數必須在任何可選參數之前聲明。

建議解決方案

要解決該錯誤,只需從可選參數中刪除預設值即可。由於無論如何在不指定所有參數的情況下都無法呼叫函數,因此功能應該不受影響:

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}
登入後複製

以上是PHP 8.0:為什麼現在需要位於可選參數之前?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板