亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

spl_autoload_register('\\Imooc\\Loader::Autoload')為什么是 \\

spl_autoload_register('\\Imooc\\Loader::Autoload'),這里的Imooc前面的為什么還有\\,命名空間不是Imooc嗎,為什么還要加\\?

spl_autoload_register(string mathod)

里面是''單引號,這里沒有什么轉義的意思吧? 如果是雙引號"",應該這樣寫的spl_autoload_register("\\Imooc\\Loader::Autoload")。

但,老師寫的是 單引號,spl_autoload_register('\\Imooc\\Loader::Autoload')

所以,不明白,糾結了一天了,求大神。。。。


正在回答

7 回答

就是轉義,不用想太多,一般用到反斜杠都要轉義的

0 回復 有任何疑惑可以回復我~

命名空間+\是為了全局引用,\\是是為 了轉義\,如果沒有第一個\,那么第二個\很有可能把命名空間的字母轉義了,比如\test,\next這些中的t/n轉義了\t,\n

2 回復 有任何疑惑可以回復我~

spl_autoload_register('\Imooc\Loader::autoload');
這樣寫也是可以的,為什么加兩個\\ 估計是資深程序員潛意識的防止轉義做的操作吧

1 回復 有任何疑惑可以回復我~
  1. 因為loader.php采用了命名空間,想要調用autoload這個方法必須要使用?? \命名空間\類名::靜態方法名的方法.

  2. spl_autoload_register自動載入方法 需要傳入載入文件的方法名才能調用.

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

請問下我也糾結于這個問題,希望能得到大神解釋

0 回復 有任何疑惑可以回復我~

首先,感謝你的回答!
但是,我覺得這個答案很不靠譜。
spl_autoload_register('IMooc\Loader::autoload'); 可以運行,是限定命名空間

但,上面說的什么轉義,因為在單引號里面,這個根本用不著轉義
spl_autoload_register('IMooc\Loader::autoload'); //用不著轉義的 限定
spl_autoload_register('\IMooc\Loader::autoload');//用不著轉義的完全限定
spl_autoload_register("IMooc\Loader::autoload");//轉義的限定
spl_autoload_register("\\IMooc\\Loader::autoload");//轉義的完全限定

不知道我這樣理解是否正確

感謝你的回復!
謝謝!

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

qq_朩耦繎_0

單引號里也存在轉義~
2018-04-05 回復 有任何疑惑可以回復我~

Miracle這個說法比較靠譜,因為在PHP的引號中“\”這個是轉義字符,但是這里使用的時候有點表示命名空間使用的意思,所以需要轉義符號轉義‘\’,就形成了“\\”這種形式。
當然,你不轉義也能正常使用,比如這里我們改成
? spl_autoload_register('IMooc\Loader::autoload');
一樣正常使用,但是相對來說就不那么規范了,畢竟我們這節學習的目的的是PSR-0規范,所以向標準靠齊吧。
個人見解,不對之處請指正。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

spl_autoload_register('\\Imooc\\Loader::Autoload')為什么是 \\

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號