Как определить, статичен ли я или объект?
Кто-нибудь знает от руки способ сказать, вызывается ли меня статически (Classname::function) или внутри объекта ($classInstance->function) внутри метода PHP?
2 ответа
Решение
По общему признанию не случайно, но у Шона Коутса есть прохладный и довольно простой подход к выяснению этого:
$isStatic = !(isset($this) && get_class($this) == __CLASS__);
Проверить, если $this
установлен и равен классу. Он будет равен для вызова экземпляра и не равен (или равен нулю) для статического вызова.