2013-07-11 78 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

它從全局命名空間調用一個函數。

只有在當前命名空間中有相同名稱的函數時才需要它。

相關問題