É necessária a implementação de desvio de jarda no PHP, interpretar e analisar uma string, executar uma comparação matemática e retornar um resultado booleano

Estou procurando algo que possa interpretar uma string em php e executar cálculos matemáticos simples e, em seguida, retorne um resultado booleano para saber se a expressão é verdadeira ou falsa.

Por exemplo:

Sue digita "3 * {mysalary} / 9 = 10000"O PHP divide isso em duas expressões - explode ('=', string);O PHP pega minha lista de campos do banco de dados e substitui todos os campos delimitados "{}" pelos dados (tipificados como int)O PHP então avalia a expressão matemáticaO php então compara o lado esquerdo com o lado direitoresultado booleano produzido.

Pode parecer complexo, mas só precisa ser muito simples. Aqui estão as restrições: 1 / operadores matemáticos são fixados em: + - / * 2 / operadores de comparação são fixados em: => <> = <= 3 / não precisam de comparações de ponto flutuante, tudo pode ser feito em um nível inteiro. Portanto, qualquer divisão pode ser arredondada, se necessário, ou simplesmente arredondar o resultado final

Sempre haverá duas expressões, com um operador de comparação. Se houver algum tipo de erro, retornaremos apenas false.

Alguém viu algo que já pode fazer isso? Eu sei que posso fazer algo, mas por que reinventar a roda, certo?

Se você não viu nada, você gostaria de listar algumas "pegadinhas" ou ressalvas que você pode pensar ao criar isso.

Depois de ler um pouco mais, percebo que poderia usar oalgoritmo de desvio de jarda. Alguém tem uma implementação disso em PHP?

Estou ciente de que o eval pode ser um método fácil de executar isso, no entanto, me preocupa que o usuário possa muito facilmente quebrar algo usando esse método ou causar erros de sintaxe. Prefiro não incluí-lo na solução ou, se o fizer, precisaria controlar rigidamente como é usado.

Obrigado.

Jason

questionAnswers(4)

yourAnswerToTheQuestion