laravels 辅助函数 str_finish 的目的是什么?

What is the purpose of laravels helper function str_finish?

我刚刚偶然发现了辅助函数 str_finish from the laravel framework

这与简单的有何不同

$newString = 'some string' . 'END';

?

功能码为:

public static function finish($value, $cap)
{
    $quoted = preg_quote($cap, '/');
    return preg_replace('/(?:'.$quoted.')+$/u', '', $value).$cap;
}

将这个看似基本的内置 PHP 功能放入一个单独的函数中有什么好处?

它做的不止于此,如果字符串已经由给定的字符串完成,它不再追加:

例如:

'abbc' === str_finish('ab', 'bc');
'abbc' === str_finish('abbcbc', 'bc');
'abcbbc' === str_finish('abcbbcbc', 'bc');

Source