【发布时间】:2011-06-18 11:15:31
【问题描述】:
这两者有什么区别:
use Exception;
use \Exception;
或者那些:
use Foo\Bar;
use \Foo\Bar;
manual 说:
请注意,对于命名空间名称(完全 限定的命名空间名称包含 命名空间分隔符,例如 Foo\Bar 与全局名称相反 不是,如 FooBar),领先的 反斜杠是不必要的,而不是 允许,因为导入名称必须完全 合格,不予处理 相对于当前命名空间。
但我并不真正理解这一点,因为上述所有变体都有效,即它绝对不是“不允许的”。
查看zend_do_use 表明,is_global(设置,当有前导反斜杠时)仅在以下情况下用于警告:
namespace {
use Exception;
}
这告诉我:“使用非复合名称 'Exception' 的语句无效”。 (尽管对use \Exception 执行相同操作会产生同样的影响,但不会引发警告。)
那么:我错过了什么吗?真的有区别吗?
【问题讨论】:
标签: php import namespaces language-specifications