在这种情况下,只有`namespace'是什么意思?

时间:2014-06-05 14:22:43

标签: php namespaces

password_compat看PHP中的这一行,我不确定它的作用:

namespace {
  //...
  }

它类似于在javascript中的匿名函数中包装一些代码吗?它的目的是什么?

注意:我知道如何正常使用命名空间,我只是不明白这一点,因为它看起来像一个命名空间但没有任何名称,对我来说,目前为止,没有任何目的

2 个答案:

答案 0 :(得分:1)

它声明代码在全局命名空间中。这样做的目的是稍后在文件中有两个函数在私有命名空间中实现,并且PHP要求如果文件中使用了任何命名空间,则文件中的第一个关键字必须是namespace。因此,要在同一文件中混合全局代码和命名空间代码,这就是它需要的样子。

有关特定提交,请参阅https://github.com/ircmaxell/password_compat/commit/88911e6abebb324cca88f546f04d6e71ce778bd3

答案 1 :(得分:0)

该定义是为了确保包含它的文件加载到全局命名空间中。看看this answer

namespace // empty namespace means global
{
    // Ensure everything you put here belongs the global namespace
}

但是,技术上说,它完全相同,因为根本没有声明任何命名空间。在这两种情况下,其中的所有内容都属于全局命名空间