php - 在命名空间中创建一个函数

时间:2014-07-10 16:52:13

标签: php namespaces autoload

我是php命名空间的新手,我想知道以下是否可行:

我有一个函数my_function,我希望它只能在一个命名空间的类中使用。

例如,在文件helpers.php中我有

function my_function() {
    return 'something';
}

fileA

namespace my_namespace
class A {}

fileB

namespace my_namespace
class B {}

fileC

namespace other_namespace
class C {}

有没有办法让类A和B中的函数my_function可用,但不能在C类中使用?

为了更好地理解这个概念,这是一种好奇心。

1 个答案:

答案 0 :(得分:0)

不,这不是命名空间的用途。

PHP manual

中所述
  

在PHP世界中,命名空间旨在解决库和应用程序的作者在创建可重用的代码元素(如类或函数)时遇到的两个问题:

     
      
  1. 您创建的代码与内部PHP类/函数/常量或第三方类/函数/常量之间的名称冲突。
  2.   
  3. 能够别名(或缩短)Extra_Long_Names,旨在缓解第一个问题,提高源代码的可读性。
  4.         

    PHP命名空间提供了一种对相关类,接口,函数和常量进行分组的方法。

关于您的代码:如果helpers.php文件中没有命名空间,则my_function()会添加到Global space,并且可以在您的应用程序中的任何位置调用。

如果您在fileA中声明该功能,则可以使用\my_namespace\my_function()从应用程序的任何位置调用该功能。

相关问题