Как использовать пользовательскую функцию в усиках php

Я настроил mustache php в моем проекте.

echo $template->render(array(
     'data'=>$data, 
     'lang'=>$lang,
     'getMaritialStatus' => function($text, Mustache_LambdaHelper $helper) {
       return Common::getTextInHindi(ucwords(strtolower($helper->render($text))));
      }
));

и моя пользовательская функция

public static function getTextInHindi($maritialStatus) {
      return $GLOBALS['lang'][$maritialStatus];
}

Теперь в моей пользовательской функции, как вы можете видеть выше, когда я пытаюсь напечатать

print_r($GLOBALS['lang']['Married']);  //gives correct output
print_r($GLOBALS['lang'][$maritialStatus]); //gives undefined index error

даже если $maritialStatus содержит строку 'Married',

Почему это происходит

1 ответ

Решение

Выяснилось, что значение нужно было обрезать:

 $GLOBALS['lang'][trim($maritialStatus)]

В лучшем случае обрезка уже сделана ранее, так что она уже существует в правильном формате:

echo $template->render(array(
     'data'=>$data, 
     'lang'=>$lang,
     'getMaritialStatus' => function($text, Mustache_LambdaHelper $helper) {
       return trim(Common::getTextInHindi(ucwords(strtolower($helper->render($text)))));
      }
));
Другие вопросы по тегам