PHP에 컴파일러를 지정하고 네임 스페이스에 문제가 있습니다.PHP의 중첩 네임 스페이스
그들은 내 언어로이 같은 모양 : 물론
package Foo
{
package Bar
{
class X { }
}
class Y { }
}
은, PHP가 중첩 된 네임 스페이스를 처리하지 않습니다. PHP에서 여전히 작동하도록이 코드를 번역하는 가장 좋은 방법은 무엇입니까?
모든 파일은 결국 하나의 PHP 파일로 컴파일됩니다. 한 가지주의해야 할 점은 패키지를 닫은 후에 글로벌 네임 스페이스로 돌아 가야한다는 것입니다. 그리고 어떻게해야 할 지에 대한 문서를 찾지 못했습니다. PHP에서는 네임 스페이스를 선언하면 전체 파일에 적용됩니다.
http://php.net/manual/en /language.namespaces.definitionmu ltiple.php – Goikiu
좋아, 아마도 다른 사람들이 찾고있는 완벽한 해결책이 없다.하지만 나는 뭔가 효과가있다. 분명히 컴파일 된 코드는 소스 코드를 정확히 나타내야 할 필요는 없으며 완벽하게 읽을 필요가 없습니다. 따라서 가장 간단한 해결책은 클래스 자체에 네임 스페이스를 포함시키는 것입니다. 즉 class Foo__Bar__X {} class Foo_Y {} $ f = new Foo__Bar__X(); 간단하고 클래스를 컴파일하는 순서를 완전히 재정렬 할 필요가 없습니다. – Zotoaster