ホームページ  >  記事  >  バックエンド開発  >  PHP でデフォルトの関数の引数をオーバーライドするにはどうすればよいですか?

PHP でデフォルトの関数の引数をオーバーライドするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 10:55:31729ブラウズ

How to Override Default Function Arguments in PHP?

デフォルトの関数引数をオーバーライドする

デフォルトの引数を使用して PHP 関数を宣言する場合、デフォルトを使用しながらそれらの値をオーバーライドする方法を理解することが重要です。他人に対する議論。次の関数を考えてみましょう:

<code class="php">function foo($blah, $x = "some value", $y = "some other value") {
    // code here!
}</code>

$y に別の値を設定しながら $x のデフォルトの引数を使用する場合、次のような誤った試みは機能しません:

<code class="php">foo("blah", null, "test");
foo("blah", "", "test");</code>

必要なデフォルト値を $x に割り当てないでください。さらに、変数名で引数を設定しようとします:

<code class="php">foo("blah", $x, $y = "test");</code>

は期待どおりの結果を生成できません。

望ましい動作を実現するには、次のように関数宣言を変更することを検討してください。

<code class="php">function foo($blah, $x = null, $y = null) {
    if (null === $x) {
        $x = "some value";
    }

    if (null === $y) {
        $y = "some other value";
    }

    // code here!
}</code>

これで、

<code class="php">foo('blah', null, 'non-default y value');</code>

のようなバリエーションで関数を呼び出し、$y をオーバーライドしながら $x をデフォルト値に設定することができます。

デフォルトのパラメータは関数定義の最後の引数にのみ適用されることに注意することが重要です。デフォルト値のオプションパラメータの後に複数のパラメータが続く場合、1 つを省略して次のパラメータを指定することはできません。

以上がPHP でデフォルトの関数の引数をオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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