准备ZEND-Exam,我发现了一个类重新定义了strlen-function的问题:
namespace MyFramework\MyString
{
function strlen ($str)
{
return \strlen($str) * 2; // return double string-length
}
}
我之前从来没有遇到过“\功能”的东西,也无法从我的教练那里得到解释 - 有人可以。帮助摆脱一些光......?
答案 0 :(得分:7)
它从全局命名空间调用一个函数。
只有在当前命名空间中有相同名称的函数时才需要它。
答案 1 :(得分:4)
在PHP 5.3中引入,\
是一个名称空间分隔符。
在您的示例中,外部strlen是MyFramework \ MyString \ strlen,内部strlen是全局的。
没有任何名称空间定义,所有类和函数定义都放在全局空间中 - 就像在支持名称空间之前在PHP中一样。使用\前缀名称将指定即使在命名空间的上下文中也需要全局空间中的名称。
参考:http://www.php.net/manual/en/language.namespaces.global.php