Da war noch ein kleiner logischer Fehler, der beim Testen nicht gleich auffiel. Zugleich sollte auch vorgesehen werden, dass man vielleicht ein leeres Trennzeichen hat oder das Zahlen übergeben werden:
error_reporting(E_ALL);
function getLastPart($delim, $s) {
if ( $s !== (string)$s ) {
trigger_error('Numerische Daten werden zu String umgewandelt. Das Ergebnis muss nicht dem erwarteten entsprechen!', E_USER_NOTICE);
}
$s=(string)$s;
$delim=(string)$delim;
if ($delim) {
$a=explode($delim,$s);
return $a[count($a)-1];
} else {
return $s[strlen($s)-1];
}
}
# Tests:
echo getLastPart('.', 'www.domain.tld'), "\n";
echo getLastPart('.', '123.450'),"\n";
echo getLastPart('.', 123.450),"\n";
echo getLastPart('', 'Das letzte Zeichen?'), "\n";