Можно ли проверить, является ли переменная статичной в PHP?  Я пытаюсь создать магический метод __get который также смотрит на статические переменные.  Я обнаружил, что property_exists() возвращает true, когда переменная тоже статическая.  Но мне нужно будет использовать :: вместо -> я бы ожидал? 
Можно проверить, является ли переменная статической с помощью Reflection:
 class Foo { static $bar; } $prop = new ReflectionProperty('Foo', 'bar'); var_dump($prop->isStatic()); // TRUE 
  Однако это все равно не позволит вам использовать их с магическими методами __get или __set , потому что они работают только в контексте объекта.  Из руководства PHP по магическим методам: 
Перегрузка объектов работает только в контексте объекта. Эти магические методы не будут инициироваться в статическом контексте. Поэтому эти методы не должны быть объявлены статическими. Начиная с PHP 5.3.0, предупреждение выдается, если один из методов магии перегрузки объявлен статическим.
  Также см. Это обсуждение в списке рассылки PHP Internals о введении __getStatic : 
Я не думаю, что вы можете получить доступ к незаявленному статическому свойству с помощью магического метода __get (). Это вызовет ошибку PHP Fatal. По крайней мере, с PHP версии 5.3.
  Это результат, если вы попытаетесь получить доступ к свойству как статическое ClassName::$propertyName конечно.