Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 16.10.2011, 15:39
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Работаю над MVC системой, где все контроллеры наследуются от одного базового класса.Есть два способа вызова методов других контроллеров - из основного потока и из других контроллеров.Необходимо запретить явный вызов private методов из основного потока,но при этом разрешить вызов из-под других контроллеров.Написал примерный код, где BaseA - базовый класс, ChildB - один из контроллеров.Не удаётся вызвать private метод дочернего класса.Как заставить ЭТО работать? Или может есть другое решение?class BaseA { public function call($method) { $this->$method(); }}class ChildB extends BaseA { private function alert() { echo 'alert called'; }}$obj = new ChildB();$obj->call('alert');Если из класса BaseA вызвать следующий код, то он укажет, что вызов был сделан из дочернего класса.Однако вызов метода дочернего опять же не срабатывает. public function call($method) { echo get_class($this); }
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Дополнение родительского класса несколькими дочерними Guest Продолжение старого архива 0 16.10.2011 15:07
Проблема с отсутствующим конструктором родительского класса Guest Продолжение старого архива 0 16.10.2011 14:38
исключение метода из класса Guest Продолжение старого архива 0 30.09.2011 16:07
Связь дочернего и родительского окна Guest Третий архив вопросов и ответов 0 28.09.2011 17:11
[РЕШЕНО] Вызов SLOT из дочернего класса - нет реакции Guest Новые вопросы и ответы 2 0 28.09.2011 16:41



© www.otvetnemail.ru - Форум вопросов и ответов.