2017-08-10 45 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