PHP 闭包函数作为 preg_replace_callback 的参数导致内部服务器错误 500
我有一个 preg_replace_callback
,它将闭包(匿名)函数作为第二个参数,它在本地工作得很好,但是当我将它部署到实时环境时,它会导致错误=>;内部服务器错误 500。当我删除 Closure 时,它可以工作。
$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
。 我的开发环境是code igniter。
I have a preg_replace_callback
which takes a closure (anonymous) function as 2nd parameter and it works perfectly fine on local, but when I deploy it to live environment it results in error => Internal server error 500. When i remove the Closure it works.
$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);
Any suggestions how can i work arround this problem. I need to use $dataItem inside my callback function and pass it to preg_replace_callback
.
My development environment is code igniter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
匿名函数仅适用于 PHP 5.3 及更高版本。您可以使用
create_function()
代替:当然,未经测试。
Anonymous functions only work in PHP 5.3 and up. You could use
create_function()
instead:Untested, of course.