一切都在标题中。当我用new Object
创建我的对象时,我有一个错误,说我找不到我的类。但是当我做new \Object
时,一切都像魅力一样。希望有人能帮助我理解。提前谢谢。
答案 0 :(得分:1)
为方便起见,PHP现在具有命名空间支持,以便将对象“打包”或“排序”为不同的“类别”,这基本上允许更容易的自动加载和相对依赖包括。
\
是根命名空间,它简单地放置了手段,在“无命名空间”中使用Object。当子命名空间中的对象需要与当前命名空间无关的对象时,这只会派上用场,例如:
\HTTP\Request\Properties()
想要扩展SPL对象ArrayObject
,如果您尝试extend ArrayObject
这会失败,因为您当前的命名空间是\HTTP\Request
,并且ArrayObject位于根命名空间。为了打破当前的命名空间,你必须\
(root / break)命名空间。
当您想要使用不同的供应商软件包(例如Zend框架库或SwiftMailer)时,命名空间非常有用,您所要做的就是为所有供应商软件包发布自动加载过程并继续工作和实现,如下所示:
/vendor/Zend/[zend packages]
$algos = \Zend\Crypt\Hash::getSupportedAlgorithms();