Статический метод

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

Статический метод

Сообщение nizsheanez »

Или я тупой или в php нельзя переопределять статические методы? это так?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Статический метод

Сообщение rak »

почему нельзя? можно. А в чем проблема?
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

Re: Статический метод

Сообщение nizsheanez »

вот в чем: self::method() вызывает метод текущего класса, а не того от которого был вызван, банальный пример: в AR метод getMetaData вызывает метод model, и даже если я переопределю метод model все равно из базового класса будет вызыван метод базового класса.
Аватара пользователя
Caveman
Сообщения: 152
Зарегистрирован: 2009.04.04, 20:56
Откуда: Москва
Контактная информация:

Re: Статический метод

Сообщение Caveman »

nizsheanez писал(а):вот в чем: self::method() вызывает метод текущего класса, а не того от которого был вызван, банальный пример: в AR метод getMetaData вызывает метод model, и даже если я переопределю метод model все равно из базового класса будет вызыван метод базового класса.
Для вызова переопределенного метода надо использовать static:: . Но это возможно только в php 5.3+
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

Re: Статический метод

Сообщение nizsheanez »

Спасибо большое! Я сегодня как только на голову не вставал каких только выходов не находил.
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

Re: Статический метод

Сообщение nizsheanez »

Но вот в чем проблема: я хочу переопределить метод model, а он из кучи мест в фреймворке вызывается через self поэтому не получится использовать подход со static::
Ответить