ホームページ >バックエンド開発 >PHPチュートリアル >PHP 8.0 では、必須パラメータがオプション パラメータの後に続くことができないのはなぜですか?

PHP 8.0 では、必須パラメータがオプション パラメータの後に続くことができないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 18:12:14239ブラウズ

Why Does PHP 8.0 Prevent Required Parameters from Following Optional Parameters?

"Required Parameter Must Precede Optional Parameter"

8.0 より前の PHP バージョンでは、関数宣言でオプションのパラメーターの後に必須のパラメーターを続けることができました。この方法は PHP 8.0 で非推奨となり、「必須パラメータ $xxx はオプションのパラメータ $yyy に続きます。」のようなエラーが発生しました。

説明:

このスタイルの関数宣言は、これは、関数呼び出し中にすべてのパラメーター (最後に必要なパラメーターを除く) を強制的に指定する必要があるため、不合理です。さらに、関数とメソッドの分析に ReflectionFunctionAbstract クラスを使用するときにあいまいさが生じました。

解決策:

非推奨エラーを解決するには、関数を書き直してデフォルト値を削除します。以前のパラメータから、必須パラメータがオプションのパラメータの前に宣言されていることを確認します:

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

Byこのルールに従うと、関数のシグネチャはより論理的になり、必須パラメータはオプションのパラメータよりも前に置く必要があるという期待に従います。

以上がPHP 8.0 では、必須パラメータがオプション パラメータの後に続くことができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。