2015-04-02 4 views
4

У меня есть кусок кода, скажем:Как сказать PHP использовать параметр по умолчанию в вызове функции?

function nums($a = 1, $b = 2, $c){ 
    echo "$a, $b, $c"; 
} 

nums(?, ?, 3); 

Могу ли я каким-то образом заменить ? сказать PHP, чтобы использовать значения по умолчанию для этих аргументов, и только передать, что один аргумент, который нужен, или это делается только путем размещения $ c сначала в списке параметров, а затем дополнительных параметров?

+3

Простой ответ, нет. Закажите его так, чтобы по умолчанию были последние, а затем просто опустите их. – AbraCadaver

+0

Я бы сделал аргумент массивом и задал переменные массива для значений по умолчанию, если они не поставлены. – Drew

ответ

6

Поставьте параметры по умолчанию в конец, затем не заполняйте параметр в вызове функции.

пример:

function nums($c, $a = 1, $b = 2){ 
    echo "$a, $b, $c"; 
} 

nums(3); 

параметры по умолчанию можно переопределить, добавив их в вызов функции:

function nums($c, $a = 1, $b = 2){ 
    echo "$a, $b, $c"; 
} 

nums(3, 12, 27); 
+0

Просто любопытно, можно ли это сделать другим способом, поскольку возможно, что у вас есть 1-й параметр, который нужно указать, а затем вы указываете только третью и хотите, чтобы второй параметр использовал значение по умолчанию. Спасибо вам все равно – Arno

+1

@Arno, Не то, чтобы я знал. Если вы не знаете значения по умолчанию и передаете их каждый раз, когда вы вызываете эту функцию, но это может привести к поражению цели использования аргумента по умолчанию. – DuckPuncher

Смежные вопросы