Использование аргументов по умолчанию в функции

Я запутался в значениях по умолчанию для функций PHP. Скажем, у меня есть такая функция:

function foo($blah, $x = "some value", $y = "some other value") {
    // code here!
}

Что, если я хочу использовать аргумент по умолчанию для $x и задать другой аргумент для $y?

Я экспериментировал с различными способами и только больше запутался. Например, я попробовал эти два:

foo("blah", null, "test");
foo("blah", "", "test");

Но оба этих способа не приводят к правильному аргументу по умолчанию для $x. Я также пытался задать его по имени переменной.

foo("blah", $x, $y = "test");   

Я полностью ожидал, что что-то подобное сработает. Но это работает совсем не так, как я ожидал. Похоже, что что бы я ни делал, мне все равно придется вводить аргументы по умолчанию каждый раз, когда я вызываю функцию. И, должно быть, я упускаю что-то очевидное.

166
задан Carrie Kendall 24 May 2015 в 21:06
поделиться