PHP,命名空间中的新变量类
2022-08-31 01:04:28
我正在试验 PHP 5.3 的命名空间功能,我只是不知道如何使用命名空间前缀实例化新类。
这目前工作正常:
<?php
new $className($args);
?>
但是,如何将命名空间预置在变量类名前面呢?以下示例不起作用。
<?php
new My\Namespace\$className($args);
?>
此示例产生:解析错误:语法错误、意外T_VARIABLE
我正在试验 PHP 5.3 的命名空间功能,我只是不知道如何使用命名空间前缀实例化新类。
这目前工作正常:
<?php
new $className($args);
?>
但是,如何将命名空间预置在变量类名前面呢?以下示例不起作用。
<?php
new My\Namespace\$className($args);
?>
此示例产生:解析错误:语法错误、意外T_VARIABLE
试试这个:
$class = "My\Namespace\\$className";
new $class();
变量前必须有两个反斜杠才能转义它\\
$className
我是这样做的:
$classPath = sprintf('My\Namespace\%s', $className);
$class = new $classPath;
请注意单引号而不是双引号。