一切都在标题中。当我使用创建对象时,new Object
出现错误,提示未找到我的班级。但是,当我做new \Object
任何事情时,一切都像魅力一样。希望有人能帮助我理解。先感谢您。
为了方便起见,PHP现在具有名称空间支持,以便将您的对象“打包”或“分类”为不同的“类别”,这基本上可以简化自动加载和相对依赖项的包含。
\
是根名称空间,简单地说就是在“无名称空间”中使用Object。这仅在子命名空间中的对象需要与当前命名空间无关的对象时才派上用场,例如:
\HTTP\Request\Properties()
想要扩展SPL对象ArrayObject
,如果尝试extend ArrayObject
这样做将失败,因为当前的名称空间是\HTTP\Request
,并且ArrayObject位于根名称空间中。为了突破当前的名称空间,您必须\
(根目录/突破)名称空间。
当您想使用不同的供应商软件包(例如Zend框架库或SwiftMailer)时,命名空间非常有用,您要做的就是为所有供应商软件包发布自动加载过程,并继续如下所示的工作和实现:
/vendor/Zend/[zend packages]
$algos = \Zend\Crypt\Hash::getSupportedAlgorithms();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句