所以我将我的编译器定位到 PHP,但我在命名空间方面遇到了一些问题。
它们在我的语言中看起来像这样:
package Foo
{
package Bar
{
class X { }
}
class Y { }
}
当然,PHP 不处理嵌套的命名空间。翻译此代码以使其在 PHP 中仍然有效的最佳方式是什么?
我应该注意到,所有文件最后都被编译成一个 PHP 文件。需要注意的是,我必须在关闭包后返回到全局命名空间,但我还没有找到任何关于如何执行此操作的文档。在我看来,在 PHP 中,一旦声明了命名空间,它就会应用于整个文件。
最佳答案
确实“命名空间声明不能嵌套”。命名空间用于避免定义冲突并在代码中引入更多的灵 active 和组织。命名空间代码块周围的括号是完全可选的。如果你想将代码翻译成能够在 php 中运行。你可以这样写:
namespace Foo\Bar;
class X{
// Your properties
}
class Y {
// Your properties
}
如果您需要更多信息,您可以查看 Elias Zerrouq 写得很好的链接示例 http://code.tutsplus.com/tutorials/namespacing-in-php--net-27203
关于php - PHP 中的嵌套命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27588127/