Я просто наткнулся на вспомогательную функцию str_finish от каркас ларавеллы.
Чем это отличается от простого
$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');
Других решений пока нет …