2017-08-10 46 views
1

我只是偶然发现laravel framework的帮助函数str_finishlaravels帮助函数str_finish的目的是什么?

这是如何从一个简单的

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

有什么不同?

功能码是:

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

是什么把这个看似基本的,内置到PHP功能集成到一个单独的函数的好处是什么?

回答

4

它并不止于此,如果字符串已被给定的字符串结束,它没有任何附加更多:

例如:

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

Source

+3

哦,甜美!这就是RegeExp-magic实际上所做的。文档应该提到这一点,因为即使您检查代码,它也不是很明显,首先这不应该是必需的。 – Bran