[英]what is the difference between `/` and `\` in php
在Linux或MacOS下运行时,PHP仅允许/
作为目录分隔符。
在Windows下运行时,PHP接受/
或\\
作为目录分隔符; 它对待他们完全一样。
在几乎所有情况下,最好始终使用/
,因为这将允许您的代码在任何平台上运行。 如果将\\
用作目录分隔符,则您的代码仅在Windows上有效。
Windows的区别在于允许与可能提供带\\
分隔符的路径的其他软件兼容,但是除非您特别需要这样做,否则最好坚持使用/
。
另外,PHP中还有\\
另一种用法,这可能会使您感到困惑(尤其是您提到的PSR0)。 \\
也是PHP 名称空间的分隔符。
命名空间是不一样的目录分隔符,但他们最终可能看起来像他们,因为共同的做法是组织一个项目,使得命名空间的目录结构相匹配。 这样做是为了使您的代码模块易于查找,并易于为其编写自动加载器,因此,这是按照PSR0构造项目的推荐方法,但是在PHP语言中,它不是强制性的。 名称空间与目录路径不同。
术语“反斜杠”是计算中使用最不正确的术语之一。 人们通常将正斜杠称为反斜杠,尤其是在引用URL时。 网址(URL),例如http://foo.bar/dash/ ,包含正斜杠,而不是反斜杠。 反斜杠和正斜杠之间的区别定义如下:
反斜杠:
正斜杠:/
记住反斜杠和正斜杠之间区别的一个好方法是反斜杠向后倾斜(\\),而正斜杠向前倾斜(/)。
在Windows中,反斜杠用于分隔文件路径中的目录(例如:C:\\ Program Files \\ Common Files \\ microsoft shared)。 在基于Unix的系统上,正斜杠用于相同的目的(例如:/ System / Library / Screen Saver)。
正斜杠也可以简称为“斜杠”,因为它们比反斜杠更常用。 (斜杠也用作分隔符号,代替单词“或”。)因此,URL http://foo.bar/dash可以用“ foo dot bar斜杠破折号”来表达。 如果您在共享URL时说“反斜杠”,人们会明白您的意思,但是您可能会遇到菜鸟。 因此,最好养成使用正确术语的习惯。
\\
用于命名空间,而/
是Windows文件系统上的路径分隔符,例如C:/Users/Sam/Documents
PSR类加载器允许您执行的操作是,使用您在命名空间中提供的信息从目录中查找和加载类。
例如,可以将一个名为response.php
的类放置在项目的根目录下的samayo/http
文件夹中,并且完整路径现在为samayo/http/response.php
,PSR允许您使用名称空间samayo\\http\\reponse
通过更改目录分隔符和其他一些内容, samayo\\http\\reponse
使用DIRECTORY_SEPARATOR
加载文件
\\
用作命名空间的定界符, /
用作文件的目录分隔符。 该示例基于UNIX系统。
尽管\\
可以在Windows上使用/
来作为目录分隔符,但使用/
也可以(例如,用于加载文件)。 但是,如果您希望在所有系统上使用正确的目录分隔符,则可以始终使用系统特定的常量DIRECTORY_SEPARATOR
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.