use*_*894 1 php regex function syntax-error
我是新手PHP和正则表达.我正在阅读一些在线示例,并附带了这个示例:
<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
return strtoupper($match[1]);
}, 'hello-world');
// outputs helloWorld
?>
Run Code Online (Sandbox Code Playgroud)
在php.net,但让我吃惊不工作,并不断收到错误:
PHP Parse error: parse error, unexpected T_FUNCTION
Run Code Online (Sandbox Code Playgroud)
为什么会出错?
您正在使用PHP的匿名函数:没有名称的函数.
当我运行你的程序时,我没有得到任何错误.也许你正在尝试它PHP < 5.3.
自PHP 5.3.0起,匿名函数可用.
如果PHP版本正在创建问题,您可以重新编写程序以不使用匿名函数:
<?php
// a callback function called in place of anonymous function.
echo preg_replace_callback('~-([a-z])~','fun', 'hello-world');
// the call back function.
function fun($match) {
return strtoupper($match[1]);
}
?>
Run Code Online (Sandbox Code Playgroud)