我正在努力挖掘我长期失去的PHP技能,因此偶然发现了一个问题。我有一个函数,它以下列方式初始化(不确定它是否是一个正确的单词)类:
$foo = new \Master\Slave\$bar();
显然,$ bar是一个已定义的类。但整件事情都行不通。当我执行以下操作时,这似乎才有效:
$foo = new $bar();
但是在我的第一个例子中,它输出了以下错误:
unexpected T_VARIABLE, expecting T_STRING
这意味着我必须手动输入类名,对吗?但是,如果我是一个不想要并且没有看到效率的顽固书呆子怎么办?因此,我的问题;如何在没有血腥错误的情况下解决此问题?
更新:在$变量中包装\ Master \ Slave \ $ bar。不确定这是否是正确的方法,但它有效,道具转到Visual Idiot
答案 0 :(得分:2)
变量永远不会绑定到任何名称空间,它们将始终位于全局范围内。
答案 1 :(得分:0)
AFAIK,命名空间不会像你想要的那样工作。
这就是你应该这样做的方式
namespace Master\Slave;
$bar = "theclassname";
class $bar() {
}