第5章 組み込み関数 / 第4回 模擬試験

PHPの`preg_replace_callback()`関数に関する次の記述のうち、正しいものはどれか。

`preg_replace_callback()`は、マッチした部分文字列をコールバック関数の戻り値で置換する。 正解
`preg_replace_callback()`はコールバック関数を使用できない、単純な文字列置換関数である。
`preg_replace_callback()`は正規表現を使用しない関数である。
`preg_replace_callback()`は配列専用の関数である。
解説
`preg_replace_callback($pattern, $callback, $subject)`は、正規表現パターンにマッチした部分文字列ごとに、指定したコールバック関数を呼び出し、その戻り値で置換する関数です。置換内容をマッチ結果に応じて動的に決めたい場合に使います。 他の選択肢が誤りである理由は次の通りです。 ・この関数はまさに「コールバック関数を使って」置換内容を柔軟に決めるための関数です。「コールバック関数を使用できない」は誤りです。 ・関数名に`preg_`が付く通り、正規表現(PCRE)を使用する関数です。 ・文字列を対象とする関数であり、「配列専用」ではありません。 例: ``` $result = preg_replace_callback( '/d+/', fn($matches) => $matches[0] * 2, '価格は100円と200円です' ); echo $result; // 価格は200円と400円です ``` (参照: 独習PHP 第4版 第5章 組み込み関数 5.4.6節 preg_replace_callback関数 p.223〜224)