Как использовать «корневое» пространство имен php?

У меня есть класс Exception:

namespace abc; class AbcException extends Exception { // blah blah } 

Он производит эту ошибку:

 Class 'abc\Exception' not found ... 

Вопросов:

  1. Что я могу сделать, чтобы сделать эту работу?

  2. Полезные документы приветствуются.

Спасибо, что прочитал мой вопрос

Что я могу сделать, чтобы сделать эту работу?

Используйте ведущую обратную косую черту, чтобы указать глобальное пространство имен:

 namespace abc; class AbcException extends \Exception { // blah blah } 

Полезные документы приветствуются.

В руководстве по PHP есть целая страница !

Класс Exception разрешен к вашему пространству имен скриптов ( PHP Manual ), поскольку он начинается с:

 namespace abc; 

Вы можете конкретно указать скрипту, какое исключение использовать тогда:

 namespace abc; use Exception; class AbcException extends Exception { // blah blah } 

В этом варианте вы видите поверх файла, который вы «импортируете». Кроме того, вы можете более легко изменить / alias каждый класс Exception в файле. См. Также Правила разрешения имен в Руководстве по PHP .

В качестве альтернативы вы можете указать конкретное пространство имен всякий раз, когда вы укажете имя класса. Корневое пространство имен равно \ , поэтому полное имя класса для исключения: \Exception :

 namespace abc; class AbcException extends \Exception { // blah blah } 

Это просто работает когда-либо, но, тем не менее, он делает ваш код более привязанным к конкретным классам, которые могут не понадобиться, если кодовая база растет и вы начинаете реорганизовывать свой код.

Это просто черное пятно. Как \ Exception.

Хорошо использовать «использование» при включении / расширении других библиотек классов ИЛИ.

 namespace AbcException; use Exception; class AbcException extends Exception { // Your Code }