узнать, метод вызван из объекта или класса

Boroman

Новичок
узнать, метод вызван из объекта или класса

Собственно сабж.
Можно ли как-то определисть внутри метода был ли он вызван из объекта или непосредственно из класса?

допустим есть класс:
PHP:
class foo{

 private $_init = false; // флаг, который показывает, что создан объект

 public function __construct(){
  // какой-то код
  $this->_init = true;
 }
 
 public function showSomething(){
  if( !$this->_init ){
   // сообщение, что типа объект не инициализирован и низя
  }
  // какой-то код
 }

}
но в самом коде такое выражение: foo::showSomething() вызовет ошибку об изпользвании $this в необъекте.
Я вот думаю как бы найти возможность отлавливать это в самом методе showSomething
 

zerkms

TDD infected
Команда форума
не надо этого отлавливать в методе - нужно включить вывод ошибок.
как следствие - статические методы вызывать только статически, а методы объектов - только как методы объектов.
 

Духовность™

Продвинутый новичок
Гоу читать, чем классы отличаются от объектов, чем статические свойства и методы отличаются от не статических
 

Boroman

Новичок
triumvirat
Я это знаю и спасибо за "лишь бы что написать, даже если не в тему" меня это развлекло.

zerkms
Я вот как раз и хочу добиться того, что бы это не вызывало ошибки а обрабатывалось определенным образом если был вызван медот без создания объекта. Хотя вообщем-то Вы правы - лучше увидеть сообщение об ошибке. Но вопрос остается открытым: можно ли как-то узнать как был вызван метод?

-~{}~ 08.07.10 12:56:

A1x
Спасибо. жаль.
 

A1x

Новичок
Не жаль. просто не надо мешать мух с котлетами, так код будет проще для понимания и дальнейшего сопровождения
 
Сверху