我有以下条件陈述
if ( (strlen($data[70])>0) || ( (remove19((trim($data[29])) == '7135556666')) && isLongDistance($data[8])) )
其中$ data是数据库中的记录集。
我的目标是包含$ data [70]不为空的所有行,还包括$ data [29] = 713555666&& $ data [8] isLongDistance = TRUE
我的问题是,如果isLongDistance($ data [8])返回false,它仍然会返回该行,因为$ data [70]不是空白的吗?
提前致谢
答案 0 :(得分:3)
是的,因为你正在做OR。您的陈述将减少为“TRUE OR(TRUE AND FALSE)”,这将是TRUE。
答案 1 :(得分:0)
是的,因为你有一个OR运算符。
答案 2 :(得分:0)
如果第一件事返回TRUE则if将成功。如果第一件事将返回FALSE,那么它将在OR之后执行该部件,如果数字正确并且函数返回TRUE,那么它将成功。
无论如何,我会像这样覆盖它
if ( !empty($data[70]) or ( (int)$data[29] == 7135556666 and isLongDistance($data[8]) )
答案 3 :(得分:0)
是的。但是要真正了解人们可以理解的代码编写方法,不要只为计算机编写代码。
考虑这个简化版本。
$dataLenght = strlen($data[70]);
$remove19 = remove19((trim($data[29]);
$longDistance = isLongDistance($data[8]);
if ( $dataLenght > 0 ) // your first OR if false it would goto elseif statement
{
//condition
}
elseif( $remove19 == '7135556666' && $longDistance) // your second statement
{
//conditon
}