PHP, новый класс переменных в пространстве имен - PullRequest
14 голосов
/ 29 октября 2011

Я экспериментирую с функциональностью пространства имен в PHP 5.3 и просто не могу понять, как создать новый класс с префиксом пространства имен.

В настоящее время это работает нормально:

<?php
new $className($args);
?>

Но как я могу добавить свое пространство имен перед именем переменной?Следующий пример не работает.

<?php
new My\Namespace\$className($args);
?>

Этот пример дает: Ошибка разбора: синтаксическая ошибка, неожиданная T_VARIABLE

Ответы [ 2 ]

16 голосов
/ 29 октября 2011

Попробуйте это:

$class = "My\Namespace\$className";
new $class();
0 голосов
/ 29 января 2019

Вот как я это сделал:

$classPath = sprintf('My\Namespace\%s', $className);
$class = new $classPath;

Обратите внимание на одинарные кавычки вместо двойных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...