预定义常量

下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)

Note: PATH_SEPARATOR 是在 PHP 4.3.0-RC2 中引入。

User Contributed Notes

zhangyangcisco at qq dot com 13-Jun-2017 09:54
"DIRECTORY_SEPARATOR is not necessarily needed, PHP always converts / to the appropriate character in its file functions.It is good practice, though.", but you may always use DIRECTORY_SEPARATOR if you only display it on the screen
orlov0562 at gmail dot com 21-Jul-2015 04:20
While debugging, this function return error number and it's difficult to remember all errors codes, so I think it's should be there.

<?php
print_r
([
   
'PREG_NO_ERROR' => PREG_NO_ERROR,
   
'PREG_INTERNAL_ERROR' => PREG_INTERNAL_ERROR,
   
'PREG_BACKTRACK_LIMIT_ERROR' => PREG_BACKTRACK_LIMIT_ERROR,
   
'PREG_RECURSION_LIMIT_ERROR' => PREG_RECURSION_LIMIT_ERROR,
   
'PREG_BAD_UTF8_ERROR' => PREG_BAD_UTF8_ERROR,
   
'PREG_BAD_UTF8_OFFSET_ERROR' => PREG_BAD_UTF8_OFFSET_ERROR,
]);
?>

Result:

Array
(
    [PREG_NO_ERROR] => 0
    [PREG_INTERNAL_ERROR] => 1
    [PREG_BACKTRACK_LIMIT_ERROR] => 2
    [PREG_RECURSION_LIMIT_ERROR] => 3
    [PREG_BAD_UTF8_ERROR] => 4
    [PREG_BAD_UTF8_OFFSET_ERROR] => 5
)
Anonymous 09-Mar-2014 12:04
In PHP 5.6 you can make a variadic function.

<?php
/**
 * Builds a file path with the appropriate directory separator.
 * @param string $segments,... unlimited number of path segments
 * @return string Path
 */
function file_build_path(...$segments) {
    return
join(DIRECTORY_SEPARATOR, $segments);
}

file_build_path("home", "alice", "Documents", "example.txt");
?>

In earlier PHP versions you can use func_get_args.

<?php
function file_build_path() {
    return
join(DIRECTORY_SEPARATOR, func_get_args($segments));
}

file_build_path("home", "alice", "Documents", "example.txt");
?>
Anonymous 30-Sep-2013 01:09
For my part I'll continue to use this constant because it seems more future safe and flexible, even if Windows installations currently convert the paths magically. Not that syntax aesthetics matter but I think it can be made to look attractive:

<?php
$path
= join(DIRECTORY_SEPARATOR, array('root', 'lib', 'file.php');
?>
Paulo Marques 16-Sep-2013 11:31
DIRECTORY_SEPARATOR is not necessarily needed, PHP always converts / to the appropriate character in its file functions.
It is good practice, though.