فب إغلاق وظيفة كمعلمة إلى بريغ_باستبدال النتائج في خطأ الخادم الداخلي 500

StackOverflow https://stackoverflow.com/questions/8978476

سؤال

لدي preg_replace_callback الذي يأخذ وظيفة إغلاق (مجهول) كمعلمة 2 ويعمل بشكل جيد تماما على المحلية ، ولكن عندما نشرها للعيش البيئة فإنه يؤدي إلى خطأ => خطأ الخادم الداخلي 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);

أي اقتراحات كيف يمكنني العمل حول هذه المشكلة.أنا بحاجة إلى استخدام dat داتيتم داخل وظيفة رد الاتصال الخاصة بي وتمريرها إلى preg_replace_callback.بيئة التطوير الخاصة بي هي مشعل الكود.

هل كانت مفيدة؟

المحلول

وظائف مجهولة تعمل فقط في فب 5.3 وما فوق.يمكنك استخدام create_function() بدلا من ذلك:

$regExPattern = '/\<%(?<content>.*?)%\>/';
$template = preg_replace_callback($regExPattern, create_function(
      '$matches'
    , 'if(isset($dataItem[trim($matches[\'content\'])])) {
          return $dataItem[trim($matches[\'content\'])];
      }
      else {
          return "";
      }'
    )
);

لم تختبر ، بطبيعة الحال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top