Как использовать аргументы по умолчанию в php - PullRequest
3 голосов
/ 13 мая 2010

Я хочу определить функцию doSomething(arg1, arg2) со значениями по умолчанию arg1 = val и arg2 = val

Когда я пишу

function doSomething($arg1="value1", $arg2="value2"){
 // do something
}

Возможно ли теперь вызывать doSomething с параметрами по умолчанию arg1 и arg2 = "new_value2"

Ответы [ 4 ]

8 голосов
/ 13 мая 2010

Иногда, если у меня много параметров со значениями по умолчанию, я использую массив для хранения аргументов и объединяю его со значениями по умолчанию.

public function doSomething($requiredArg, $optional = array())
{
   $defaults = array(
      'arg1' => 'default',
      'arg2' -> 'default'
   );

   $options = array_merge($defaults, $optional);
}

Действительно имеет смысл, только если у вас много аргументов.

5 голосов
/ 13 мая 2010

Нет, к сожалению, это невозможно. Если вы определите $arg2, вам нужно будет также определить $arg1.

3 голосов
/ 13 мая 2010
function doSomething( $arg1, $arg2 ) {
  if( $arg1 === NULL ) $arg1 = "value1";
  if( $arg2 === NULL ) $arg2 = "value2";
  ...
}

и позвонить:

doSomething();
doSomething(NULL, "notDefault");
2 голосов
/ 13 мая 2010

Вы когда-нибудь назначали arg1, но не arg2? Если нет, то я бы поменял порядок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...