Как работает PHP:
$myClass = 'App\MyClass';
$object = new $myClass;
Но это приводит к ошибке:
$myClass = 'MyClass';
$object = new 'App\\'.$myClass;
Во втором примере бросается unexpected T_CONSTANT_ENCAPSED_STRING
.
Как оказалось, приведенный выше пример обусловлен приоритетом оператора, поскольку new
имеет наивысший приоритет, но...
Аналогично, я могу попробовать создать экземпляр с помощью только строки, как в:
$object = new 'App\MyClass';
И та же ошибка. Почему это?