Да, будет выдано предупреждение, а не ошибка, а именно:
Warning: Missing argument 2 in call to myfunction() in FILE on line LINENO
Если вы вызываете myfunction("hello")
, $bar
не определено, поэтому это будет либо пустая строка, либо значение NULL, и $foo = "hello"
. Это только вызовет предупреждение, поэтому ваш скрипт все равно будет выполняться.
Почему бы вам просто не изменить порядок параметров?
Редактировать: Вот хорошее объяснение того, почему невозможно перегрузить автономные функции в PHP:
Перегрузка функций PHP