这个PHP函数有什么问题

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)

为什么会出错?

cod*_*ict 6

您正在使用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)