php:这是否正确?

问题描述:

我如果条件语句php:这是否正确?

if ((strlen($data[70])>0) || ((remove19((trim($data[29])) == '7135556666')) && isLongDistance($data[8])) ) 

其中$的数据是从数据库中记录如下。

我的目标是包括所有行$数据[70]不为空,也包括行,其中$数据[29] = 713555666个& & $数据[8] isLongDistance = TRUE

我的问题是,如果isLongDistance($ data [8])返回false,它是否会返回该行,因为$ data [70]不是空白的?

在此先感谢

是的,因为你正在做的OR。你的陈述将减少为“真或者(真和假)”,这将是真实的。

是的,因为你有一个OR操作符。

如果第一件事返回TRUE,那么if将成功。如果第一个事件返回FALSE,那么它将在OR之后执行该部分,如果该数字是正确的并且该函数返回TRUE,那么它将成功。

无论如何,我将覆盖像这样

if (!empty($data[70]) or ((int)$data[29] == 7135556666 and isLongDistance($data[8])) 
+0

如果$ data [70] ='0',empty()将评估为true。也许他的申请必须认为这是一个有效的价值,因此strlen()。 remove19可能会做一些重要的事情,或许不应该被删除。而且,将$ data [29]转换为int时,它将包含7135556666.43。也许他需要这样的价值来评估为假。我们不知道。此外,应该让phill知道||和&&具有不同于“或”和“和”的运算符优先级,并且在长条件语句中也可以更易读。 – webbiedave 2010-03-30 21:27:41

是的。但要真正理解它编写人类可以理解的代码,不要只为计算机编写代码。

考虑这个简单的版本。

$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 

}