从password_compat看PHP中的这一行,我不确定它的作用:
namespace {
//...
}
它类似于在javascript中的匿名函数中包装一些代码吗?它的目的是什么?
注意:我知道如何正常使用命名空间,我只是不明白这一点,因为它看起来像一个命名空间但没有任何名称,对我来说,目前为止,没有任何目的
答案 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
}
但是,技术上说,它完全相同,因为根本没有声明任何命名空间。在这两种情况下,其中的所有内容都属于全局命名空间。