1

preg_replace_callbackPHPでローカル変数を使用する方法。次のコードがあります。

function pregRep($matches)
{
    global $i; $i++;

    if($i > 2)
    {     
          return '#'.$matches[0];
    }
    else
    {
        return $matches[0];
    }
}

$i = 0;
$str =  preg_replace_callback($reg_exp,"pregRep",$str); 

また$str、文字列で$reg_expあり、正規表現です。これらは両方とも明確に定義されています。

ご協力いただきありがとうございます。

4

1 に答える 1

7

最も簡単な方法は、無名関数をコールバックとして使用することです。

$result = preg_replace_callback(
    $pattern,

    function ($match) use ($variable) {
        // do something
    },

    $subject
);

この方法で複数の変数を追加できますが、関数が定義されたときにその変数のコピーが作成されることに注意してください (これは、複数の用途のために変数に割り当てる場合に重要です)。変数への「ライブ」参照が必要な場合は、 を使用します&$variable

もちろん、代わりにアロー関数を使用するには、PHP 7.4 以降が必要です。

于 2013-04-10T19:08:40.820 に答える