@Dubrovin

Как создать глобальный класс внутри namespace?

В начале файла объявлен namespace ABC, как можно создать класс в глобальном namespace?

namespace ABC;
//этот класс должен быть внутри ABC
class A {
}
//а этот класс должен быть глобальным
class B {
}


Объявление класса находится где-то в середине кода (вложенного внутрь методов и условий), поэтому использовать namespace {} не получается.
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Следовать PSR и вынести объявление класса в отдельный файл по ожидаемому пути PSR-4 (или PSR-0).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@zhainar
Гуглю за вас
Но если вдруг захотите
namespace ABC {
//этот класс должен быть внутри ABC
	class A {
		public static function nspc()
		{
			return __NAMESPACE__;
		}
	}
	
}

namespace {
	//а этот класс должен быть глобальным
	class B {
		public static function nspc()
		{
			return __NAMESPACE__;
		}
	}
	
	class C extends ABC\A {
	}
	
	echo ABC\A::nspc();
	echo '<br>----------------<br>';
	echo B::nspc();
	echo '<br>----------------<br>';
	echo C::nspc();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы