关于命名空间

正在回答

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

3回答

您好,没有定义命名空间的情况下 , Exception和\Exception 均可正常执行抛出异常。定义命名空间的情况 , Exception会在定义的命名空间下找对应的异常类 , 如果没有定义异常类 , 则会报错 。\Exception 会按照php默认的异常类执行抛出异常 。祝学习愉快!

  • 雨之赞歌 提问者 #1
    按照老师的说法,Exception是定义在全局空间下的,所以在当前空间找不到这个类吗?所以\Exception的作用是到全局空间下找这个类吗? 可是那为什么所有的系统函数可以不用 \ 直接调用呢?
    2019-04-22 16:02:06
  • 好帮手慕查理 回复 提问者 雨之赞歌 #2
    您好,Exception是在定义的命名空间下找对应的异常类。异常类添加\和不添加时候查找的异常类是不同的。而系统函数在命名空间下和不在命名空间下作用是相同的。祝学习愉快!
    2019-04-22 17:09:24
提问者 雨之赞歌 2019-04-23 09:38:55

我这样也是可以成功输出的,strlen是系统函数,所以系统函数可以不用加 \ 吗?
http://img1.sycdn.imooc.com//climg/5cbe6c910001913902800097.jpg

  • 您好,是的,系统函数不需要加\。祝学习愉快!
    2019-04-23 09:43:16
提问者 雨之赞歌 2019-04-22 17:32:18

http://img1.sycdn.imooc.com//climg/5cbd89b40001e33710540830.jpg

我查看了手册,红框的部分意思是不是:Exception是系统中的类,所以必须 使用 \ 让它去找系统中的Exception,而不是命名空间中的? 因为此命名空间中没有这个类。而关于系统函数的意思是否是,用不用 \都一样,因为如果在当前命名空间中不存在,会自动去系统中找这个函数?

  • guly #1
    你好,这个斜杠表示,如果当前类中没有,就去全局搜索这个类, 对于函数也是如此,如果在当前命名空间中不存在,PHP全局搜索该函数,祝学习愉快!
    2019-04-22 18:42:49
  • 提问者 雨之赞歌 回复 guly #2
    可是我不写斜杠,好像也能找到函数
    2019-04-22 18:53:19
  • 好帮手慕查理 回复 提问者 雨之赞歌 #3
    您好,可以找到函数应该是当前存在这个函数,或者是使用的系统函数。
    2019-04-22 19:06:47
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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