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