PHP 関数でのデフォルト引数の使用
PHP で関数パラメータにデフォルト値を割り当てる場合は、その制限を理解することが重要です。次のようなパラメータを持つ関数を考えてみましょう:
<code class="php">function foo($blah, $x = "some value", $y = "some other value")</code>
$x にはデフォルトの引数を使用したいが、$y には別の値を指定したい場合はどうすればよいですか?
$x に null を渡すと、 PHP はこれを値の意図的な省略として解釈するため、機能しません。これに対処するには、次のアプローチを検討してください。
<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>
この変更により、foo('blah', null, 'test') を呼び出して $x のデフォルトを使用し、$x のカスタム値を指定できます。 $y.
PHP のデフォルトのパラメーター メカニズムが関数の最後の引数に適用されることに注意することが重要です。必要な引数が最後の引数ではない場合、デフォルトの引数を省略することはできません。
さまざまなパラメータの数と型を処理したい場合は、より柔軟なアプローチを検討できます。
<code class="php">public function __construct($params = null) { if ($params instanceof SOMETHING) { // Single parameter of type SOMETHING } elseif (is_string($params)) { // Single string argument } elseif (is_array($params)) { // Array of properties } elseif (func_num_args() == 3) { // 3 parameters passed } elseif (func_num_args() == 5) { // 5 parameters passed } else { throw new \InvalidArgumentException("Could not figure out parameters!"); } }</code>
この方法により、多様な入力シナリオをより柔軟に処理できます。
以上がPHP 関数の一部のみをオーバーライドしたい場合に、PHP 関数でデフォルトの引数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。