Могу ли я объявить одни и те же множественные абстрактные методы с разными параметрами? - PullRequest
1 голос
/ 20 февраля 2011

Можно ли как-нибудь сделать это в абстрактном классе в php:

    abstract function AddFilter();

    abstract function AddFilter( /*array*/ $c_array='', /*string*/ $url='')

    // ... etc...

с использованием необязательных параметров / как мне это сделать? если я просто использую второй, я получаю 'Объявление ofContent :: AddFilter () должно быть совместимо с ContentGeneric :: AddFilter ()'

обновление : ок ... мой метод теперь заключается в добавлении однострочной функции обратного вызова в расширенной функции AddFilter (), которая работает, но, разумеется, не самая лучшая.

1 Ответ

3 голосов
/ 20 февраля 2011

Нет, вы не можете этого сделать.PHP не поддерживает функции перегрузки с разными сигнатурами, как, например, C ++.Если вы хотите эмулировать что-то вроде этого, взгляните на магический метод __ call () .

...