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
*/
?>