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

DDD
リリース: 2024-11-02 10:55:31
オリジナル
806 人が閲覧しました

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

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