デフォルトの関数引数をオーバーライドする
デフォルトの引数を使用して 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 サイトの他の関連記事を参照してください。