Я пытаюсь оценить некоторые строки, содержащие тире с Symfony ExpressionLanguage составная часть.
Вот что у меня так далеко:
...
$string = 'user.chuck-norris.getId()';
$language = new ExpressionLanguage();
$evaluated = $language->evaluate($expression, $users);
...
Это возвращает мне следующую ошибку:
Variable "norris" is not valid around position 12. (Symfony\Component\ExpressionLanguage\SyntaxError)
Если я меняю тире «-» подчеркиванием «_», это работает, но у меня есть система слизней, которая использует тире, и я не буду менять ее, если смогу избежать этого.
Есть ли решение?
Спасибо
Как заявлено Йонелем, тире интерпретируются как оператор.
Таким образом, чтобы это работало, я просто должен заменить черточки на undescores
$string = 'user.chuck-norris.getId()';
И затем, прежде чем сделать запрос, замените _ на —
$value = str_replace('_', '-', $value);
Других решений пока нет …