【PHP8.x】replacementプロパティの使い方
replacementプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『replacementプロパティは、RegexIteratorが正規表現にマッチした要素を置換する際に使用する、置換後の文字列を保持するプロパティです。このプロパティが有効になるのは、RegexIteratorオブジェクトのコンストラクタで、動作モードを示すフラグにRegexIterator::REPLACEが設定されている場合に限られます。通常、RegexIteratorは正規表現にマッチした要素を抽出しますが、REPLACEモードでは、マッチした要素をこのreplacementプロパティに設定された文字列で置き換えた結果を返します。この置換処理は、内部的にpreg_replace()関数と同様のルールで動作します。そのため、置換文字列内では、正規表現パターン内で丸括弧()によってキャプチャした部分文字列を、$1や${2}といった後方参照の形式で埋め込むことが可能です。これにより、元の文字列の一部を活かしながら、動的に新しい文字列を生成できます。このプロパティを利用することで、配列などの繰り返し処理が可能なデータの中から、特定のパターンを持つ要素を検索し、一括で別の形式の文字列に変換する処理を効率的に実装できます。
構文(syntax)
1<?php 2$arrayIterator = new ArrayIterator(['test1', 'test2', 'test3']); 3 4$regexIterator = new RegexIterator( 5 $arrayIterator, 6 '/test(\d+)/', 7 RegexIterator::REPLACE 8); 9 10// 置換後の文字列を設定します。 11// '$1' は正規表現の最初のキャプチャグループを参照します。 12$regexIterator->replacement = 'item-$1'; 13 14foreach ($regexIterator as $value) { 15 echo $value . PHP_EOL; 16}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません