如何在PHP中实现嵌套命名空间?

如何在PHP中实现嵌套命名空间?,php,namespaces,Php,Namespaces,有人能用一个简单的演示来解释吗?为了澄清关于不同语法用法的任何混淆,名称空间只支持两种语法,括号内或简单组合都可以。我建议,如果你使用一个而不是另一个,要保持一致 use level1\level2\level3; 您还可以使用具有简单组合语法的嵌套名称空间(;) 似乎{}之后的名称空间不是必需的?不,不是必需的。它展示了如何在名称空间内创建类,因此{}所以use的唯一功能是速记?它只是名称空间的一个较短的符号有趣的是,my\stuff\nested即使my\stuff不存在也能工作。这是

有人能用一个简单的演示来解释吗?

为了澄清关于不同语法用法的任何混淆,名称空间只支持两种语法,括号内或简单组合都可以。我建议,如果你使用一个而不是另一个,要保持一致

use level1\level2\level3;
您还可以使用具有简单组合语法的嵌套名称空间(



似乎
{}
之后的名称空间不是必需的?不,不是必需的。它展示了如何在名称空间内创建类,因此
{}
所以
use
的唯一功能是速记?它只是
名称空间的一个较短的符号
有趣的是,
my\stuff\nested
即使
my\stuff
不存在也能工作。这是一个bug吗?
<?php
namespace my\stuff\nested {  // <- bracketed syntax
 class foo {}
}
?>
<?php
namespace my\stuff {  // bracketed syntax but with a nested look
  namespace nested {
     class foo {}
  }
}
?>
<?php
namespace mine;
use ultra\long\ns\name;  // <- simple-combination syntax

$a = name\CONSTANT;
name\func();
?>