为了账号安全,请及时绑定邮箱和手机立即绑定

怎么会有两个'\\'?

为什么 spl_autoload_register('\\IMooc\\Loader::autoload')中会有两个'\'?正确的写法应该是:spl_autoload_register('\IMooc\Loader::autoload')吧

正在回答

5 回答

因为老师用的是单引号?

0 回复 有任何疑惑可以回复我~
另外翻看PHP手册“使用命名空间:基础”这一节的“完全限定名称”引用方式,可能更能助你理解老师在这里的用意
0 回复 有任何疑惑可以回复我~

Miracle这个说法比较靠谱,因为在PHP的引号中“\”这个是转义字符,但是这里使用的时候有点表示命名空间使用的意思,所以需要转义符号转义‘\’,就形成了“\\”这种形式。
当然,你不转义也能正常使用,比如这里我们改成
  spl_autoload_register('IMooc\Loader::autoload');
一样正常使用,但是相对来说就不那么规范了,毕竟我们这节学习的目的的是PSR-0规范,所以向标准靠齐吧。
个人见解,不对之处请指正。

1 回复 有任何疑惑可以回复我~

第一个\是转义字符

虽然在你的这个编辑器里面显示的是spl_autoload_register('\\IMooc\\Loader::autoload')

但是当这个字符串输出到需要读取它的对象那里,在它眼里这个路径是'\IMooc\Loader::autoload'这样的

0 回复 有任何疑惑可以回复我~
#1

lovePhper 提问者

谢谢了
2014-12-05 回复 有任何疑惑可以回复我~

转义字符吧,第一个\代表转义字符,第二个\才是代表\,两个合起来表示反斜线\,例如

以双引号为定界符的php字符串,支持下列转义: 
    \n 换行
    \r 回车
    \t 水平制表符
    \\ 反斜线  
    \$ 美元符号  
    \" 双引号  

1 回复 有任何疑惑可以回复我~
#1

lovePhper 提问者

谢谢了。
2014-12-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么会有两个'\\'?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信