У меня есть этот код из приложения в PHP 5.4:preg_replace, preg_replace_callback и массив для преобразования строки
$rightKey = preg_replace(array(
"/(_)(\p{L}{1})/eu",
"/(^\p{Ll}{1})/eu"
), array(
"mb_strtoupper('\\2', 'UTF-8')",
"mb_strtoupper('\\1', 'UTF-8')"
), $key);
Это не работает хорошо, потому что preg_replace является устаревшим. Я сделал некоторые исследования и превратил его в:
$rightKey = preg_replace_callback(array(
"/(_)(\p{L}{1})/u",
"/(^\p{Ll}{1})/u"
), function($m) { return array(
"mb_strtoupper('\\2', 'UTF-8')",
"mb_strtoupper('\\1', 'UTF-8')"
); }, $key);
Я изменил функцию preg_replace_callback, я удалил «е», и я добавил функцию обратного вызова.
Но теперь у меня есть:
Array to string conversion
И я действительно не знаю, как адаптировать функцию обратного вызова, так что работает ^^.
Спасибо :),