preg_replace_callback, возвращаемое значение обратного вызова не заменяет совпавшую строку

В следующем фрагменте

Почему бар не заменяет foo?

$subject = "Hello foo";

preg_replace_callback(
    '/\bfoo\b/i',

    function ($match)
    {
        return 'bar';
    },

    $subject
 );

 echo $subject;

1 ответ

Решение

preg_replace_callback не модифицирует $subject но возвращает новую строку:

Следующий код должен работать:

$subject = "Hello foo";

echo preg_replace_callback(
    '/\bfoo\b/i',

    function ($match)
    {
        return 'bar';
    },

    $subject
 );
Другие вопросы по тегам