Этот синтаксис поддерживается только в PHP 5.3 и более поздних версиях. Предыдущие версии не понимают этот синтаксис, поэтому ваша ошибка синтаксического анализа (T_PAAMAYIM_NEKUDOTAYIM
относится к оператору ::
).
В предыдущих версиях вы можете попробовать call_user_func()
, передав ему массив, содержащий имя класса и имя его метода:
$variable_class_name = 'foo';
call_user_func(array($variable_class_name, 'bar'));