3
我有一个具有状态属性的对象,例如state ='state4'或state ='state2'。现在我也有一个状态属性可以得到的所有可用状态的数组,状态1到状态8(注意:这些状态没有命名为stateN,它们有8个不同的名称,比如付款或取消。以描述问题)。除此之外,我还有一个逻辑表达式,例如$ expression =!state1 || state4 & &(!state2 || state5)。这是以上描述的代码:在PHP中以字符串形式评估逻辑表达式?
$state = 'state4';
$expression = '!state1||state4&&(!state2||state5)';
现在我想检查逻辑表达式是真是假。在上述情况下是真实的。在下面的情况下,它将是假的:
$state = 'state1';
$expression = state4&&!state2||(!state1||state7);
任何想法/提示如何以优雅的方式解决这个问题?
谢谢:)
使用'eval'非常危险,让你打开PHP注入 – Znarkus 2012-02-07 09:26:33
谢谢,我编辑了我的问题,我认为新标准很难做到? – EOB 2012-02-07 09:38:48
@Znarkus没有PHP注入机会:'eval'表达式完全由网站所有者控制:'$ expression ='!state1 || state4 &&(!state2 || state5)';' - 没有用户输入! – 2012-02-07 10:38:11