ホームページ > バックエンド開発 > PHPチュートリアル > PHP 8.0 が「必須パラメータ $xxx はオプション パラメータ $yyy に続きます」をスローするのはなぜですか?

PHP 8.0 が「必須パラメータ $xxx はオプション パラメータ $yyy に続きます」をスローするのはなぜですか?

Patricia Arquette
リリース: 2024-12-03 07:39:13
オリジナル
511 人が閲覧しました

Why Does PHP 8.0 Throw

PHP エラー: "必須パラメーター $xxx はオプションのパラメーター $yyy に続きます"

PHP 8.0 にアップグレードすると、開発者は非推奨エラーが発生する可能性があります必須パラメーターがオプションのパラメーターの後に続くことを示します。このエラーは、必要な関数パラメータのデフォルト値が誤って使用されているために発生します。

問題の説明:

以前、PHP バージョン 8.0 より前では、関数は必須パラメータにデフォルト値を割り当てることで、必須パラメータとオプションのパラメータを組み合わせます。ただし、この方法には固有の欠陥があるため、非推奨になりました。

たとえば、次の 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート