Как использовать пользовательскую функцию в усиках 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)))));
}
));