在PHP命名空间中使用变量的任何方法?

时间:2011-12-17 07:49:22

标签: php frameworks namespaces

有一个包含数千个文件的框架,所有文件都以硬编码

开头

“命名空间SOMETHING”

有没有办法用变量替换SOMETHING?

“namespace $ SOMETHING”

1 个答案:

答案 0 :(得分:0)

不,您不能使用变量名称空间,原因如下:

  • “命名空间是使用namespace关键字声明的。包含命名空间的文件必须在任何其他代码之前在文件顶部声明命名空间。” http://php.net/manual/en/language.namespaces.definition.php

    因此,在声明命名空间之前,您甚至无法声明或导入变量定义。

  • 这是语法错误:

    namespace $bar;
    Parse error: syntax error, unexpected T_VARIABLE,
    expecting T_STRING or T_NS_SEPARATOR or '{'
    
  • “变量命名空间”听起来像是一个非常糟糕的想法,我无法想出一个与滥用无关的用例

  • 您无法使用常量(如上一个问题中所述),因为语法与普通名称空间声明无法区分