[PHP] preg_replace_callback で無名関数を使う : してログ

[PHP] preg_replace_callback で無名関数を使う

PHP 20121231

置き換え用のタグを連想配列($row)で置き換える例です。どちらとも同じ動きをします。

PHP5.3以降では、クロージャスコープを使ってすっきり書くことができます。

$row  = array( ... );
$html = preg_replace_callback(
	'//',
	function ($match) {
		return $row[$match[1]];
	},
	$html
);

PHP5.3未満では、create_function を使って力技で展開すれば実現できます。

$row  = array( ... );
$seri = serialize($row);
$html = preg_replace_callback(
	'//',
	create_function(
		'$match',
		'$seri = '.var_export($seri,true).';'.
		'$row = unserialize($seri);' .
		'return $row[$match[1]];'
	),
	$html
);
0 件のコメント
名前:
コメント: