【发布时间】:2012-10-30 19:25:36
【问题描述】:
如何从字符串中声明类?
代码
$name = 'the_class';
require_once $name.'.php';
$class = new \resource\$name();
错误
Parse error: syntax error, unexpected '$name' (T_VARIABLE), expecting identifier (T_STRING)
【问题讨论】:
-
@WesleyMurch:这是不正确的。请参阅下面的一些答案,了解如何正确执行此操作。
-
@drrcknlsn:这太棒了,虽然很丑。我仍然很惊讶为命名空间选择的语法是反斜杠,这几乎是一个普遍的转义字符。
-
@Wesley Murch,它是唯一可用于语法的未使用字符之一。
-
@JasonMcCreary:
★resource★classname()会更酷。 -
不能使用其他字符太糟糕了,让解释器简单地识别使用它的上下文。例如,为什么
$class = new Resource.Classname();会成为一个问题,除非它是编译器的缺点?没有歧义,因为.在这种情况下永远无法用于连接(对吗?)。只是一些想法 - 我确信这是有原因的,这真的让我无法理解,而且我已经习惯了反斜杠并且现在几乎喜欢它。
标签: php