我有一个Exception类:
namespace abc;
class AbcException extends Exception {
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
它会产生以下错误:
Class 'abc\Exception' not found ...
Run Code Online (Sandbox Code Playgroud)
问题:
我能做些什么来完成这项工作?
有用的文件表示赞赏.
感谢您阅读我的问题
Lig*_*ica 27
我能做些什么来完成这项工作?
使用前导反斜杠指示全局命名空间:
namespace abc;
class AbcException extends \Exception {
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
有用的文件表示赞赏.
在PHP手册中有一整页专门讨论这个问题!
hak*_*kre 17
Exception类解析为脚本命名空间(PHP手册),因为它开始于:
namespace abc;
Run Code Online (Sandbox Code Playgroud)
您可以专门告诉脚本使用哪个例外:
namespace abc;
use Exception;
class AbcException extends Exception {
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
使用此变体,您可以在文件顶部看到"导入"的类.此外,您可以稍后更轻松地更改/别名文件中的每个Exception类.另请参阅PHP手册中的名称解析规则.
或者,您可以在指定类名时指定具体的命名空间.根命名空间是\
,因此异常的完全限定类名是\Exception
:
namespace abc;
class AbcException extends \Exception {
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
这只是工作,然而,它使您的代码更加绑定到具体的类名,如果代码库增长并且您开始重构代码,则可能不需要这些类名.