我有一个preg_replace_callback
它采用闭包(匿名)函数作为第二个参数,它在本地工作上完美无瑕,但是当我将其部署到实际环境时,它会导致错误=>内部服务器错误500.当我删除闭合它的作品。作为preg_replace_callback的参数的PHP封闭函数导致内部服务器错误500
$regExPattern = '/\<%(?<content>.*?)%\>/';
$template = preg_replace_callback($regExPattern, function ($matches) use ($dataItem) {
if(isset($dataItem[trim($matches['content'])])) {
return $dataItem[trim($matches['content'])];
}
else {
return '';
}
}, $template);
任何建议我该如何解决这个问题。我需要在回调函数中使用$ dataItem并将其传递给preg_replace_callback
。 我的开发环境是代码点火器。
您的生产服务器不输出错误,这是很好的设计。你可以检查错误日志,让我们知道实际的错误是什么? –
任何你的开发环境中没有php 5.3的机会? – boobiq
Like @boobiq我猜你的服务器很可能没有使用PHP 5.3 – rdlowrey