Вызов переопределенного статического метода из родительского - PullRequest
2 голосов
/ 24 июля 2011

У меня есть два класса.Ребенок и родитель.Родитель вызывает статический метод от дочернего (это переопределенный статический родительский метод в дочернем классе), и я получаю общую ошибку сервера.Когда я удаляю отношение («расширяет» часть), все в порядке и не получаю ошибок.Понятия не имею почему.Вы не можете переопределить статические методы?Искал ответы, но не могу их найти.

Class Fase {

  public static function getbyId($id) {
   //some stuff
      }
  public function getsomefaseitem($fase_item_id) {
     FaseItem::getbyid($fase_item_id);
    }

}

Class FaseItem extends Fase {

  public static function getbyId($id) {

      }
}

1 Ответ

10 голосов
/ 24 июля 2011

у меня работает.


Это кажется странным. База не должна знать о производном.

Возможно, вместо этого используйте static:: и полагайтесь на переопределение статических функций-членов & mdash; или «позднее статическое связывание». Для этого вам понадобится PHP 5.3.

<?php
class Fase {
   public static function getbyId($id) {
      echo "Fase::getbyId\n";
   }

   public function getsomefaseitem($fase_item_id) {
      static::getbyid($fase_item_id); // <---
   }
}

class FaseItem extends Fase {

   public static function getbyId($id) {
     echo "FaseItem::getbyId\n";
   }
}


$f = new Fase();
$f->getsomefaseitem(0);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...