Вызов статического метода из имени строки в PHP

Мне нужно вызвать статический метод класса, но у меня есть только имя класса, а не его экземпляр. Я делаю это так.

$class = new "ModelName"; $items = $class::model()->findAll(); 

Он работает на моем компьютере, но когда я unexpected T_PAAMAYIM_NEKUDOTAYIM на сервер, он выдает unexpected T_PAAMAYIM_NEKUDOTAYIM , поэтому я думаю, что он действительно ожидает, что модель будет переменной вместо метода.

PS: Если это помогает, это структура Yii, поэтому, если есть другой способ вызвать функции find (), это нормально для меня.

заранее спасибо

Это связано с тем, что ваш сервер запускает версию PHP раньше 5.3.0, в которой этот синтаксис не поддерживается.

Из документации по оператору разрешения области :

Начиная с PHP 5.3.0, можно ссылаться на класс, используя переменную. Значение переменной не может быть ключевым словом (например, self, parent и static).

В любом случае вы всегда можете использовать call_user_func :

 $class = "ModelName"; // the "new" in your example was a typo, right? $items = call_user_func(array($class, 'model'))->findAll();