preg_replace_callback,callback的返回值不替换匹配的字符串

时间:2013-02-03 00:30:38

标签: php pcre preg-replace-callback

在以下代码段

bar 为什么不替换 foo

$subject = "Hello foo";

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

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

    $subject
 );

 echo $subject;

1 个答案:

答案 0 :(得分:3)

preg_replace_callback不会修改$subject,但会返回新字符串:

以下代码应该有效:

$subject = "Hello foo";

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

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

    $subject
 );