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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 13:09:02913ブラウズ

How to Override Specific Default Arguments in PHP Functions?

PHP 関数におけるデフォルト引数の高度な使用法

PHP では、デフォルト引数により関数に柔軟性が与えられ、開発者はパラメータのフォールバック値を定義できます。ただし、複数のデフォルト引数を扱う場合、他の引数のデフォルト値を保持しながら特定の引数を選択的にオーバーライドすることは混乱を招く可能性があります。

質問:

デフォルトの引数を持つ関数:

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

$x にはデフォルトの引数を使用し、$y には別の値を設定するにはどうすればよいですか?

解決策:

これを実現する鍵は、関数宣言を変更することです:

<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>

この場合、$xはデフォルト値を保持しますが、$y は指定されたデフォルト以外の値で上書きされます。

追加の考慮事項:

  • デフォルトでは、PHP パラメータは次のようにのみ機能します。関数の最後の引数。 1 つのパラメーターを省略して、その後に続くパラメーターの値をオーバーライドすることはできません。
  • さまざまな型のさまざまな数のパラメーターを扱う場合は、以下に示すように、可変数の引数を持つ関数を宣言することを検討してください。次の例:
<code class="php">public function __construct($params = null) {
    // code here!
}</code>

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

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