Аргумент функции со значением по умолчанию, предшествующим аргументу без значения по умолчанию: что происходит? - PullRequest
0 голосов
/ 02 ноября 2011

(Возможно, этот вопрос уже задавался ранее, но я не могу его найти.)

Что произойдет, если у вас есть аргумент со значением по умолчанию, предшествующим аргументу без значения по умолчанию в PHP?Точно так же:

function myfunction($foo = 12, $bar) {
    ...
}
  • Дает ли PHP ошибки и если да, на каком уровне сообщения об ошибках?
  • Что происходит, когда вы вызываете myfunction("hello") только с одним аргументом?

1 Ответ

1 голос
/ 02 ноября 2011

Да, будет выдано предупреждение, а не ошибка, а именно:

Warning: Missing argument 2 in call to myfunction() in FILE on line LINENO

Если вы вызываете myfunction("hello"), $bar не определено, поэтому это будет либо пустая строка, либо значение NULL, и $foo = "hello". Это только вызовет предупреждение, поэтому ваш скрипт все равно будет выполняться.

Почему бы вам просто не изменить порядок параметров?

Редактировать: Вот хорошее объяснение того, почему невозможно перегрузить автономные функции в PHP: Перегрузка функций PHP

...