ホームページ > バックエンド開発 > PHPチュートリアル > PHP 8.0: 必須パラメータをオプションのパラメータよりも前に置く必要があるのはなぜですか?

PHP 8.0: 必須パラメータをオプションのパラメータよりも前に置く必要があるのはなぜですか?

DDD
リリース: 2025-01-01 01:03:10
オリジナル
844 人が閲覧しました

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;
}
ログイン後にコピー

Clarifying Functional Implications

8.0 より前の PHP バージョンでは、このような関数宣言が許可されていました。ただし、ReflectionFunctionAbstract クラスを使用して関数とメソッドを分析するときに、矛盾と混乱が生じました。

新しい要件

PHP 8.0 では、必要なすべての要件を要求することで、より論理的なアプローチが強制されます。パラメータは、オプションのパラメータの前に宣言する必要があります。

推奨解決策

エラーを解決するには、オプションのパラメーターからデフォルト値を削除するだけです。いずれにせよ、すべてのパラメータを指定しないと関数を呼び出すことはできないため、機能は影響を受けないはずです:

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}
ログイン後にコピー

以上がPHP 8.0: 必須パラメータをオプションのパラメータよりも前に置く必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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