是否需要使用目录分隔符常量?

时间:2009-03-09 08:03:32

标签: language-agnostic

我正在使用PHP,但我猜测这个问题可能与语言无关。

使用PHP,一个常量由PHP定义,称为DIRECTORY_SEPARATOR。我在Joomla看到了这个。

define('DS', DIRECTORY_SEPARATOR);

我认为这看起来是个好主意所以我将它合并到了我的一些网站中。现在我问自己为什么。我只有Windows和OS X的经验,据我所知,Microsoft,Linux和Apple都使用正斜杠作为目录分隔符。

使用这个常量是不必要的?

3 个答案:

答案 0 :(得分:19)

就PHP而言,在构造路径时可能不需要它,但它对于从操作系统获得的任何内容都很重要。

来自http://alanhogan.com/tips/php/directory-separator-not-necessary

  

在尝试编写跨平台的可移植PHP代码时,我使用PHP的DIRECTORY_SEPARATOR常量来编写路径字符串,例如: "..".DIRECTORY_SEPARATOR."foo",因为在Windows上执行此操作的“正确”方式是"..\foo",而在其他所有方面(Linux,UNIX,Mac OS X),它将是"../foo"

     

好吧,正如Christian php.net所指出的那样,网页设计论坛的人们证实,这完全是不必要的。只要你使用正斜杠“/”,你就可以了。 Windows并不介意它,它最适合* nix操作系统。

     

(请注意,DIRECTORY_SEPARATORexplode之类的内容仍有用 - 这是系统给你的路径。感谢Shadowfiend指出这一点。)

答案 1 :(得分:18)

例如,Mac OS Classic使用“:”。有关详细信息,请参阅Wikipedia。此外,它被认为是避免'magic numbers'或类似结构的好风格。

答案 2 :(得分:6)

Windows实际上使用反斜杠作为目录分隔符,尽管某些具有Windows版本的环境会自动在正斜杠和反斜杠之间进行转换(Python会浮现在脑海中)。