1--TEST-- 2preg_replace_callback() 2 3--FILE-- 4<?php 5 6function f() { 7 throw new Exception(); 8} 9 10try { 11var_dump(preg_replace_callback('/\w/', 'f', 'z')); 12} catch(Exception $e) {} 13 14function g($x) { 15 return "'$x[0]'"; 16} 17 18var_dump(preg_replace_callback('@\b\w{1,2}\b@', 'g', array('a b3 bcd', 'v' => 'aksfjk', 12 => 'aa bb'))); 19 20var_dump(preg_replace_callback('~\A.~', 'g', array(array('xyz')))); 21 22var_dump(preg_replace_callback('~\A.~', function($m) { return strtolower($m[0]); }, 'ABC')); 23?> 24--EXPECTF-- 25array(3) { 26 [0]=> 27 string(12) "'a' 'b3' bcd" 28 ["v"]=> 29 string(6) "aksfjk" 30 [12]=> 31 string(9) "'aa' 'bb'" 32} 33 34Warning: Array to string conversion in %s on line %d 35array(1) { 36 [0]=> 37 string(7) "'A'rray" 38} 39string(3) "aBC" 40