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')
所以,不明白,糾結了一天了,求大神。。。。
2018-12-25
就是轉義,不用想太多,一般用到反斜杠都要轉義的
2017-10-02
命名空間+\是為了全局引用,\\是是為 了轉義\,如果沒有第一個\,那么第二個\很有可能把命名空間的字母轉義了,比如\test,\next這些中的t/n轉義了\t,\n
2017-06-01
spl_autoload_register('\Imooc\Loader::autoload');
這樣寫也是可以的,為什么加兩個\\ 估計是資深程序員潛意識的防止轉義做的操作吧
2017-06-01
因為loader.php采用了命名空間,想要調用autoload這個方法必須要使用?? \命名空間\類名::靜態方法名的方法.
spl_autoload_register自動載入方法 需要傳入載入文件的方法名才能調用.
2016-12-25
請問下我也糾結于這個問題,希望能得到大神解釋
2016-11-19
首先,感謝你的回答!
但是,我覺得這個答案很不靠譜。
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");//轉義的完全限定
不知道我這樣理解是否正確
感謝你的回復!
謝謝!
2016-11-19
Miracle這個說法比較靠譜,因為在PHP的引號中“\”這個是轉義字符,但是這里使用的時候有點表示命名空間使用的意思,所以需要轉義符號轉義‘\’,就形成了“\\”這種形式。
當然,你不轉義也能正常使用,比如這里我們改成
? spl_autoload_register('IMooc\Loader::autoload');
一樣正常使用,但是相對來說就不那么規范了,畢竟我們這節學習的目的的是PSR-0規范,所以向標準靠齊吧。
個人見解,不對之處請指正。