不从包含命名空间和类名的字符串创建类实例。如果您不使用它,USE
一切正常,但它USE
不想
Рабочий вариант:
<?php
namespace SE_Core\Test;
class Main
{
public function show()
{
}
}
$className = 'Main';
$class = 'SE_Core\Test\\' . $className;
$obj = new $class();
print_r($obj);
?>
Нерабочий вариант:
<?php
namespace SE_Core\Test;
use SE_Core\Test as SE;
class Main
{
public function show()
{
}
}
$className = 'Main';
$class = 'SE\\' . $className;
$obj = new $class();
print_r($obj);
?>
它不起作用,因为定义的别名
use
仅对当前文件有效,最重要的是,它们仅在代码编译阶段才有意义,它们在运行时不存在。因此,没有类的事实并不令人惊讶 - 不。这不是错误,而是语言的一个特性,PHP 的排列方式。文档:
原文:
可能更好的翻译是“ ……因此不会影响…… ”
引用文档部分“PHP:基础知识”