php需要反斜杠错误

时间:2014-09-10 21:20:12

标签: php require

我正在使用命名空间并尝试自动加载需求。在__auto_load函数上,var class_name带有反斜杠。这引发了:

Warning: require(controller\Example\Test.php): failed to open stream: No such file or directory in ...

但如果我尝试要求controller/Example/Test.php;它的作品。

我尝试在另一个服务器及其工作上运行相同的东西。然后我认为这是配置或PHP版本的问题。

我现在可以通过斜杠替换反斜杠来解决,但我想知道为什么会发生这种情况。

1 个答案:

答案 0 :(得分:3)

因为反斜杠与正斜杠不同。反斜杠通常是用于转义字符的时间。 Windows对目录结构使用反斜杠,但大多数基于Unix的操作系统都使用普通斜杠。


如果你跑:

root@PC:~$ cd \
>

Linux会认为你试图逃避输入/换行并允许你继续输入你的命令。如果使用正斜杠,则会有所不同,它会将您带到根目录:

root@PC:~$ cd /
root@PC:/$

您可以随时使用PHP的常量DIRECTORY_SEPARATOR

$path = join(DIRECTORY_SEPARATOR, array('controller', 'Example', 'Test.php');
require($path);

来源:Anonymous