I was trying to work out the difference between this and getBasename (http://php.net/manual/splfileinfo.getbasename.php) and the only difference I could really see was a special case of a file in the filesystem root with the root specified:
<?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);
}
// will return:
/*
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" // see how getFilename includes the '/'
string(8) "file.txt" // but getBasename doesn't
string(5) "/file" // ditto getFilename
string(4) "file" // ditto getBasename
*/
?>