Вопрос

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

Когда я пишу

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

function doSomething( $arg1, $arg2 ) {
  if( $arg1 === NULL ) $arg1 = "value1";
  if( $arg2 === NULL ) $arg2 = "value2";
  ...
}

И позвонить:

doSomething();
doSomething(NULL, "notDefault");

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top