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

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

Mary-Kate Olsen
リリース: 2024-11-30 08:54:11
オリジナル
121 人が閲覧しました

Why Are Required PHP 8.0 Function Parameters Now Required to Precede Optional Ones?

PHP 8.0 関数パラメーター構文の変更: 必須パラメーターはオプションのパラメーターより前に置く必要があります

PHP 8.0 では、必須関数パラメーターが構文の後に続く場合に非推奨の警告が導入されています。オプションのパラメータ。このエラーは、古いバージョンの PHP ではこの動作が許可されていたために発生しますが、最後に必要なパラメータまですべてのパラメータを指定する必要があるため、意味がありませんでした。

例:

次の関数について考えてみましょう:

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

PHP 8.0 では、この関数は次の非推奨をスローします。警告:

Deprecated: Required parameter $var2 follows optional parameter $var1 in...
ログイン後にコピー

非推奨の理由:

この変更により、関数シグネチャは、必須パラメータはオプションのパラメータの前に宣言する必要があるという常識的な前提に従うようになります。これにより、関数の動作が明確になり、ReflectionFunctionAbstract クラスを使用した分析が簡素化されます。

解決策:

この問題を解決するには、以前のパラメーターからデフォルト値を削除するだけです。上記の例では、関数は次のように書き換えられます:

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

すべてのパラメーターを宣言せずに関数を呼び出すことはできないため、この変更は関数の機能には影響しません。

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

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