3

2つのデフォルト値を持つ関数を作成しようとしていますが、最初の引数のみを指定する必要がある場合と、2番目の引数のみを指定する必要がある場合があります。PHPでこれを実行できる方法はありますか、それとも標準と見なされる必要な処理を実行する方法はありますか?

function ex($a, $b = null, $c = null) {
    ....
}

ex($a, $b, $c) // WORKS FINE

ex($a) // WORKS FINE

ex($a, $b) // WORKS FINE

ex($a, $c) // WANT VAR C TO BE VAR C IN THE FUNCTION AND NOT VAR B

ありがとう

4

3 に答える 3

5
ex($a, $c) // WANT VAR C TO BE VAR C IN THE FUNCTION AND NOT VAR B

2番目のパラメータをスキップします:

ex($a, null, $c);

公式ドキュメントで詳細を見る

于 2012-06-03T15:42:35.120 に答える
2

このように呼んでください:

ex($a, null, $c);
于 2012-06-03T15:42:42.780 に答える
1

関連する配列を使用できます

次のコードを検討してください。

<?php

function tryThis($parms)
{
  $defaults = array(
      'a' => 5,
      'b' => null,
      'c' => 'Wibble' );
   $parms = array_merge($defaults, $parms);
   var_dump($parms);
}

// Use it as follows

tryThis(array('a'=>7, 'c'=>'Hello'));
tryThis(array('b'=>'Hi There'));

?>

これにより、パラメーターを任意の順序に並べることができ、任意のパラメーターのデフォルトが可能になります。唯一の欠点は、関連する配列を介してパラメーターにアクセスする必要があることです。

于 2012-06-03T16:05:33.437 に答える