PHP: как проверить, вызван ли метод класса из экземпляра, или статически

Задача: при вызове метода класса, использовать разный код в зависимости от того, как вызвана функция: статически или из класса. Т.е. результат выполнения кода:

 $tr=new TRabbit();
 $res= $tr->Producer("ocpi_queue", "Hello!");

и кода:

$res= TRabbit::Producer("ocpi_queue", "Hello!");

, должен быть разным.

Решение:

объявим в классе статическую переменную, которая будет изменять свое значение, если был создан экземпляр класса.

class TRabbit { 
    public static $isInstance=false;                 
    public function __construct(){
        self::$isInstance=true;
    }    
    public static function Producer($queue,$message,$delay=0) {  
      if (self::$isInstance==true) {
          echo "Код один\n";
      } else {
          echo "Код другой\n";
      }
    }
}