我正在阅读的一本书有这段代码,但不知道为什么preg_match
中有这么多反斜杠。第一个\可能意味着匹配字面反斜杠,但为什么还有两个表达式?为什么在这个preg_match中有很多反斜线用于解析名称空间?
这是代码为“提供命名空间支持”与自动加载:
// listing 05.18
$namespaces = function ($path) {
if (preg_match('/\\\\/', $path)) {
$path = str_replace('\\', DIRECTORY_SEPARATOR, $path);
}
if (file_exists("{$path}.php")) {
require_once("{$path}.php");
}
};
\spl_autoload_register($namespaces);
$obj = new util\LocalPath();
$obj->wave();