【问题标题】:Why is there a PATH_SEPARATOR constant?为什么有一个 PATH_SEPARATOR 常量?
【发布时间】:2012-03-19 11:08:07
【问题描述】:

这不是/吗?

为什么它有一个常数?不会变吧?

【问题讨论】:

    标签: php


    【解决方案1】:

    PATH_SEPARATOR 是用于分隔唯一字符串中的多个路径的字符(如 php.ini 中的 include_path)。

    它的值在 UNIX 系统上是 ':',在 Windows 系统上是 ';'

    您所说的(UNIX 上的'/' 和Windows 上的'\')是DIRECTORY_SEPARATOR 常量。

    【讨论】:

      【解决方案2】:

      正如您最初的问题所述:“为什么有 PATH_SEPARATOR 常量?”,Windows 使用分号 ;,而其他系统使用冒号 :

      但是我认为您将 PATH_SEPARATOR 误认为 DIRECTORY_SEPARATOR

      PATH_SEPARATOR 分隔同一字符串中的多个路径。例如在 windows 环境变量中使用时。

      c:\path\to\a;c:\path\to\b

      DIRECTORY_SEPARATOR 分隔路径中的目录: 在 Windows 中

      \
      

      在其他系统中

      /
      

      正如其他人所说,windows也接受/

      【讨论】:

      • 打开命令控制台并在 Windows 中尝试cd /valid/path/。我想你会发现这行得通
      • 试试cd /,你会发现它没有。
      • @KarolyHorvath,我刚刚在 3 台 Windows 7 机器上做过。工作没有任何问题。
      • same 版本尝试 3 台机器有什么意义?尝试不同的版本...
      • 这正是问题所在——它在 API 级别支持它。试试system("dir /mydirectory") - 它会抱怨,因为它认为这是dir 命令的参数。因此,尽管 PHP 支持/,但您很容易遇到奇怪的问题,因为您认为它会在任何地方 工作。我只是想指出这一点。
      【解决方案3】:

      可以。它是 Windows 中的 \ 和 Linux 中的 /(以及几乎所有其他地方),尽管现代版本的 Windows 确实接受 / 作为分隔符。

      哎呀,这是关于DIRECTORY_SEPARATOR 常量。

      PATH_SEPARATOR 确实是分隔各种路径的常量,如PéCés answer 所示。

      【讨论】:

        猜你喜欢
        • 2017-01-31
        • 1970-01-01
        • 1970-01-01
        • 2014-07-20
        • 2021-09-16
        • 2014-08-26
        • 2018-07-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多