繁体   English   中英

PHP中的`/`和`\\`有什么区别

[英]what is the difference between `/` and `\` in php

我试图理解PSR-0中的示例,但无济于事。 我知道\\是目录分隔符(至少在我的Windows操作系统中),并且以我的愚见,它不能等同于/ 我用谷歌搜索了它们之间的差异,但没有结果。

在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM