2016-03-04 27 views
-1

使用笨我要检查,如果表单验证是假的,或者如果我的其他变量被设置使用逻辑运算符:如果这两种方法的结果或者变量被设置

if (isset($answer_error) || $this->form_validation->run() == false) 
{ 
    //Do stuff 
} 

但出于某种原因,我不能检查这两个在一个有条件的陈述中,为什么是这样?

编辑:我当时在处理被称为 “短路评价” How can I have PHP avoid lazy evaluation?

首先evaluationg每学期固定它

$validation = $this->form_validation->run(); 
$my_validation = isset($answer_error); 

if ($my_validation || $validation == false) 
{} 
+2

如果使用'||'在一个条件中检查两个条件,请使用'&&'运算符! – Saty

+0

我需要检查两者是否都设置为 –

+1

它是否做你要求的。也许你没有正确地解答这个问题......我怀疑,“设置”你可能意味着“不是空的”,这是一个不同的事情。 – Narf

回答

1

使用|代替。这将设置条件,同时仍然检查指令的其余部分

+0

是不是用于比较比特的操作符? –

+0

是的。然而,在PHP中,只要''f'语句中发生'true'条件,就不需要检查其余部分(Java的行为也是这样)。为了检查所有的条件,你可能需要做一些操作,或者把“context”(($ validation || $ othervalidation)== true)'或者先计算完整的操作符。 ([顺便说一句,这是文档链接](http://php.net/manual/en/language.operators.precedence.php)) – Bonatti

0

试试这个

if (isset($answer_error) or $this->form_validation->run() == false) 
{ 
    //Do stuff 
} 
相关问题