麻烦老师了!关于自动加载的问题和命名空间的问题

麻烦老师了!关于自动加载的问题和命名空间的问题

1.spl_autoload_register()参数3 是否加载到队列最前面是什么意思?
2.定义命名空间时 如:namespace  A; 与 namespace  \A ;有什么区别? 莫非 namespace  \A;是从系统目录下定义的?
3.但是调用时 一定都要加 \A\func1() ? 最前面(最左边)的的”\” 必须加?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你好,第三个参数如果是 true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。

namespace A;这句代码定义了一个命名空间,你可以理解为定义一个名称为 A 的域名。namespace \A;这句代码定义了一个命名空间,你可以理解为定义一个名称为 \A 的域名,

但是在对完全限定名称的函数,类和常量的调用在编译时解析。调用时,例如 new \A 解析为类 A。所以实例化类调用时是没有区别的,如果解决您的问题请采纳,祝学习愉快!

  • 轩辕小齐V 提问者 #1
    老师,我在做练习的时候 namespace \A; 会报错的,貌似;那如果再调用系统的函数可以直接调用?是不是还得 在利用命名空间调用呢?
    2019-01-08 11:22:24
  • guly 回复 提问者 轩辕小齐V #2
    你好,报错是因为语法不规范,编译器中会出现波浪线警告,系统函数是可以直接调用不用使用命名空间,命名空间是为了区分不同文件夹下的类的,建议学生仔细体老师回复的答案。
    2019-01-08 13:52:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师