2017-08-10 8 views
1

Je viens de trébucher sur la fonction d'assistance str_finish du laravel framework.Quel est l'objectif de laravels helper function str_finish?

Quelle est la différence d'un simple

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

?

Le code de fonction est:

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

Quels sont les avantages de mettre cette apparence de base, en-fonctionnalité intégrée de PHP dans une fonction distincte?

Répondre

4

Il fait plus que cela, si la chaîne est déjà terminée par la chaîne donnée, il ne rajoutez pas plus:

Par exemple:

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

Source

+3

Oh, doux ! C'est ce que la magie RegeExp fait réellement. Les docs devraient vraiment mentionner cela, car ce n'est pas évident même si vous inspectez le code, ce qui ne devrait pas être nécessaire en premier lieu. – Bran