Как использовать аргументы по умолчанию в PHP
-
26-09-2019 - |
Вопрос
Я хочу определить функцию 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? Если нет, то я бы переключил заказ.
Не связан с StackOverflow