Is using the directory separator constant necessary?

前端 未结 3 1898
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-10 10:23

I am using PHP, but I guess this question might be language agnostic.

With PHP, a constant is defined by PHP, called DIRECTORY_SEPARATOR. I ha

相关标签:
3条回答
  • 2020-12-10 10:40

    Windows actually uses a backslash as the directory separator, although some environments that have Windows versions will translate between forward slashes and backslashes automatically (Python comes to mind).

    0 讨论(0)
  • 2020-12-10 10:46

    As far as PHP is concerned, you might not need it when constructing a path, but it is important for anything you get from the OS.

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

    In attempting to write cross-platform, portable PHP code, I used PHP’s DIRECTORY_SEPARATOR constant to write path strings, e.g. "..".DIRECTORY_SEPARATOR."foo", because the “proper” way to do it on Windows would be "..\foo" while on everything else (Linux, UNIX, Mac OS X) it would be "../foo".

    Well, as Christian on php.net pointed out and the guys at Web Design Forums confirmed, that’s completely unnecessary. As long as you use the forward slash, “/”, you’ll be OK. Windows doesn’t mind it, and it’s best for *nix operating systems.

    (Note that DIRECTORY_SEPARATOR is still useful for things like explode-ing a path that the system gave you. Thanks to Shadowfiend for pointing this out.)

    0 讨论(0)
  • 2020-12-10 10:58

    Mac OS Classic uses ":", for instance. See Wikipedia for details. Also it's considered good style avoiding 'magic numbers' or similar constructs.

    0 讨论(0)
提交回复
热议问题