У меня есть preg_replace_callback
, который выполняет функцию закрытия (анонимного) как 2-й параметр, и он отлично работает на локальном уровне, но когда я развертываю его в среду, error => Внутренняя ошибка сервера 500. Когда я удаляю Closure, он работает.Функция закрытия Php как параметр для preg_replace_callback приводит к ошибке внутреннего сервера 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
Как @boobiq Я предполагаю, что существует высокая вероятность того, что ваш сервер не использует PHP 5.3 – rdlowrey