Ouzo\Utilities\Strings::sprintAssocDefault PHP Method

sprintAssocDefault() public static method

When no value for placeholder is found in array, a default empty value is used if not otherwise specified. Example: $sprintfString = "This is %{what}! %{what}? This is %{place}!"; $assocArray = array( 'what' => 'madness', 'place' => 'Sparta' ); Result: 'This is madness! madness? This is Sparta!'
public static sprintAssocDefault ( string $string, array $params, string $default = '' ) : string
$string string
$params array
$default string
return string
    public static function sprintAssocDefault($string, $params, $default = '')
    {
        foreach ($params as $key => $value) {
            $string = preg_replace("/%{({$key})}/", $value, $string);
        }
        $string = preg_replace("/%{\\w*}/", $default, $string);
        return $string;
    }

Usage Example

Beispiel #1
0
 /**
  * @test
  */
 public function shouldSprintfStringAndReplaceWithEmptyIfNoPlaceholderFound()
 {
     //given
     $sprintfString = "This is %{what}! This is %{place}! No, this is invalid %{invalid_placeholder} placeholder!";
     $assocArray = array('what' => 'madness', 'place' => 'Sparta');
     //when
     $resultString = Strings::sprintAssocDefault($sprintfString, $assocArray);
     //then
     $this->assertEquals('This is madness! This is Sparta! No, this is invalid  placeholder!', $resultString);
 }