У меня возникает ощущение, что существует некоторая путаница с динамической типизацией в PHP: в PHP нет такого понятия, как объект типа class
, классы выражаются своими именами.Поэтому, если вы напишите foo
в своем приложении, вы получите ПРЕДУПРЕЖДЕНИЕ, и foo
будет интерпретировано как строка 'foo'
- даже если есть класс с таким именем.
Так что если вынужно вызвать статическую функцию для класса, который присутствует в переменной, вы можете сделать это следующим образом:
$class = 'Foo';
$class::staticFuntion(); // will call Foo::staticFunction()
Это идет еще дальше, вы можете ссылаться на переменные с переменными :
$className = 'Foo';
$ref = 'className';
$$ref::staticFunction(); // will call Foo::staticFunction()