Похоже (PHP 5.3), что если вы переопределяете метод класса, можно добавить дополнительные параметры, если они имеют значения по умолчанию.
Например, рассмотрим класс:
class test1 {
public function stuff() {
echo "Hi";
}
}
Следующий класс расширяет «test1» и выдаст предупреждение E_STRICT.
class test2 extends test1 {
public function stuff($name) {
echo "Hi $name";
}
}
Но следующее не выдает предупреждение E_STRICT.
class test3 extends test1 {
public function stuff($name = "") {
echo "Hi $name";
}
}
Хотя класс «test3» не выдает предупреждение E_STRICT, у меня сложилось впечатление, что PHP не позволяет сигнатурам методов перегружаться . Итак, я должен спросить. Является ли мое наблюдение ошибкой / недостатком или на самом деле правильное предполагаемое поведение?
Далее, если параметр аргумента по умолчанию в порядке, почему параметр аргумента не по умолчанию не в порядке?