"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 サイトの他の関連記事を参照してください。