我试图找出这个函数和 getBasename (https://php.net/manual/splfileinfo.getbasename.php) 之间的区别,我唯一能看到的区别是文件系统根目录中文件的一个特殊情况,其中指定了根目录
<?php
function getInfo($reference)
{
$file = new SplFileInfo($reference);
var_dump($file->getFilename());
var_dump($file->getBasename());
}
$test = [
'/path/to/file.txt',
'/path/to/file',
'/path/to/',
'path/to/file.txt',
'path/to/file',
'file.txt',
'/file.txt',
'/file',
];
foreach ($test as $file) {
getInfo($file);
}
// 将返回:
/*
string(8) "file.txt"
string(8) "file.txt"
string(4) "file"
string(4) "file"
string(2) "to"
string(2) "to"
string(8) "file.txt"
string(8) "file.txt"
string(4) "file"
string(4) "file"
string(8) "file.txt"
string(8) "file.txt"
string(9) "/file.txt" // 请注意 getFilename 包含 '/'
string(8) "file.txt" // 但 getBasename 没有
string(5) "/file" // getFilename 同样如此
string(4) "file" // getBasename 同样如此
*/
?>