2012-06-11 3 views
1

Можно создать дубликат:
PHP - Calling functions with multiple variablesДолжен ли я всегда передавать все аргументы функции PHP?

function test($var1=null, $var2=null, $var3=null){ 
    //smart stuff goes here 
} 

ли я всякий раз, вызовите функцию проходящее все переменные?

test(null, $var2, null); 

Я хотел бы передать только $ var2, потому что все остальные переменные имеют значения по умолчанию ... Возможно ли это?

В JavaScript мы можем передать объект функции, есть ли что-то подобное в PHP?

+0

Обычно передается массив (PHP имеет ассоциативные массивы, без необходимости в объекте) в качестве аргумента, содержащего фактические аргументы. – Niko

+0

Я провел исследование и нашел этот интересный фрагмент кода http://www.marco.org/2008/11/11/faking-named-parameters-in-php – simPod

ответ

2

Вам нужно передать только аргументы до последнего аргумента, для которого вы не хотите использовать значение по умолчанию. В вашем примере вы можете сделать это:

test(null, $var2); 

Последний аргумент может быть опущен, поскольку значение по умолчанию является удовлетворительным. Но первый должен быть включен, поэтому PHP знает, что вы устанавливаете значение для второго параметра.

До тех пор, пока PHP не предложит именованные параметры, такие как Python, так оно и должно работать.

+0

Так что нет другого способа, как сказать PHP, что я Пропускаем только вторую переменную? – simPod

+0

Это правильно –

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