PHP: как проверить, вызван ли метод класса из экземпляра, или статически
Задача: при вызове метода класса, использовать разный код в зависимости от того, как вызвана функция: статически или из класса. Т.е. результат выполнения кода:
| 1 2 3 |  $tr=new TRabbit();  $res= $tr->Producer("ocpi_queue", "Hello!"); | 
и кода:
| 1 | $res= TRabbit::Producer("ocpi_queue", "Hello!"); | 
, должен быть разным.
Решение:
объявим в классе статическую переменную, которая будет изменять свое значение, если был создан экземпляр класса.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | 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";       }     } } |