PHP名称空间可以包含变量吗?

Emp*_*nes 54 php variables namespaces

PHP名称空间可以包含变量吗?如果是这样,怎么办呢?

mar*_*rio 40

不可以.您可以在声明命名空间后设置变量,但变量将始终存在于全局范围中.它们永远不会绑定到名称空间.您可以从缺少任何名称解析描述中推断出

也没有允许在命名空间中定位变量的语法.

print \namespace\$var;      // syntax error

print "${namespace\\var}";  // "unexpected T_NS_SEPARATOR"
Run Code Online (Sandbox Code Playgroud)


小智 19

试试这个

<?php
namespace App\login; 

$p = 'login';
$test2 = '\App\\'.$p.'\\MyClass';

$test = new $test2;
Run Code Online (Sandbox Code Playgroud)

  • 命名空间必须是文件的第一行.不是吗? (5认同)
  • 对结果的解释将非常感激。 (2认同)

Lor*_*uer 11

不,他们不能,正如马里奥所说.

要封装变量,请使用Classes.绝对应该避免污染全局变量空间.