Итак, у меня есть создатель алгоритма, где мои пользователи могут создавать алгоритмы, используя переменные из списка возможных переменных.Алгоритмы, которые они создают, должны быть проверены, поэтому я заменяю переменные на «1», чтобы проверить, верны ли они, и вернуть число, не создавая ошибок.Моя проблема в том, что мне нужно, чтобы можно было создать алгоритм, подобный
(0.5*(1+7-|1-7|))
. Проблема в том, что это вертикальная линия (|), которая используется для получения абсолютного значения уравнения в нем.Когда я отправляю это уравнение в eval (), он возвращает эту ошибку:
Ошибка разбора: синтаксическая ошибка, неожиданная '|'в controller.php (425): код eval () в строке 1
Есть ли математическая альтернатива для получения абсолютного значения, которое я мог бы использовать здесь, или есть какой-нибудь способ экранирования этого символачтобы оно не выдавало ошибку, но все равно правильно отображало уравнение?
ОБНОВЛЕНИЕ в итоге прислушалось к совету @ AbraCadaver и
$string = preg_replace('/\|([\d.-]+)\|/', 'abs($1)', $string);