preg_replace_callback_array()
という新しい関数がPHP7から実装されました。要は配列を受け取れるバージョンのpreg_replace_callback()
です。
<?php
$str = 'aBcDeF';
$str = preg_replace_callback_array([
'/[ace]/' => function ($m) { return strtoupper($m[0]); },
'/[BDF]/' => function ($m) { return strtolower($m[0]); },
], $str);
var_dump($str); // string(6) "AbCdEf"
preg_replace()
は複数組の置換を一気に書けるのにpreg_replace_callback()
だと書けないという問題意識から作られた関数のようです。でも、そんなに必要かなあ…?
#参照