2013-07-11 98 views
4

为ZEND,准备考试,我发现了一个问题,它是一个类重新定义strlen的功能:反斜杠作为函数名称的前缀是什么?

namespace MyFramework\MyString 
{ 
    function strlen ($str) 
    { 
    return \strlen($str) * 2; // return double string-length 
    } 

} 

我从来没有跨“\函数”来-thing之前无法从我的教练解释 - 有人可以请。帮助摆脱一些光...?

回答

3

在PHP 5.3中引入,\是一个名称空间分隔符。

在你的例子中,外部strlen是MyFramework \ MyString \ strlen,内部strlen是全局的。

没有任何的命名空间定义,所有的类和函数定义放入全局空间 - 因为它是在PHP命名空间提供了支持前。使用\前缀名称将指定名称是全局空间所需的,即使在命名空间的上下文中也是如此。

参考:http://www.php.net/manual/en/language.namespaces.global.php

5

它从全局命名空间调用一个函数。

只有在当前命名空间中有相同名称的函数时才需要它。

相关问题