PHP: echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); Взял учебный пример отсюда: http://www.php.net/manual/ru/functions.anonymous.php . Не пойму, как работает PHP: function ($match) { return strtoupper($match[1]); } На странице лишь приведён пример, но не объясняется. Что делает PHP: function ($match) { return strtoupper($match[1]); } ?
А что делает просто функция PHP: function ($match) { return strtoupper($match[1]); } ? то же делает и эта то етсь получает на вход $match и применяет к первому элементу strtoupper и возвращает обратно
Вот полный пример: PHP: <?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // выведет helloWorld ?> Почему код выводит "helloWorld"? Подстановки в функцию никакой нет...
а что должно выводить? у вас ищится символ стоящий после чёрточки и отправляются в функцию все совпадения в 0 элементе будет вся строка соответствующая шаблону в 1 - будет то что в скобках то есть первая буква после - вот к ней применяется функция strtoupper и результат возвращается, и то что совпало с шаблоном, заменяется на то что вернула функция, то есть -h нашлось по шблоону, а поменялось на H