str_replace('\\', DIRECTORY_SEPARATOR, trim($class,'\\'));
$class里的\\都被去掉了,然后再替换成目录分隔符,意义何在?再说了,类名怎么会有\\这种东西呢?
百思不得其解啊.
$class里的\\都被去掉了,然后再替换成目录分隔符,意义何在?再说了,类名怎么会有\\这种东西呢?
百思不得其解啊.
1
superbear Dec 5, 2014
trim只是去除首位处的字符
|
2
superbear Dec 5, 2014
\(转义)\表示\,
使用了namespace的话,类名就会有这个\ |
3
hjxx Dec 5, 2014
去除首尾。
|
4
shiny PRO 带 namespace 的类名可能以 \ 开头,所以去掉,然后把中间分隔的 \ 替换成目录分隔符。
这代码像是 autoload 里的,下一步我猜就是去指定的路径找文件了。 |
5
jacob OP |
7
osinx Dec 5, 2014
看了下回复,上面说的都很好,只是缺少画龙点晴的回复。
其实这个写法是籽兼容windows。 因为windows下的path_sep是"\" |
9
shiny PRO @jacob namespace 有钟写法是以 \ 开头,请搜索手册查看 namespace 部分章节,trim 显然是为这种情况考虑。
一层 namespace 就是一个文件夹, namespace 分隔字符替换成 DIRECTORY_SEPARATOR,然后文件放指定目录里就行了。 如果你考虑自己实现一个「优雅」的 autoload 机制,这种是一种比较不错的方式。 |
10
66beta Dec 5, 2014
万网虚拟主机上用trim会空白页面
|