如果($ value ['flagS'] =='是'& $ value ['flagE'] =='是'& $,我的代码会向我发送电子邮件,即使此声明不正确value ['flagL'] =='是'& $ value ['flagML'] =='是')请参阅下面的代码并协助,我哪里出错了
const
答案 0 :(得分:1)
请小心,我不认为你的病情符合它应该做的事情。当您可能需要&
时,使用单个&&
是bitwise operator,即logical operator。
if($value['flagS'] == 'Yes'
&& $value['flagE'] == 'Yes'
&& $value['flagL'] == 'Yes'
&& $value['flagML'] == 'Yes'
) { ... }
现在将检查"是"的所有4个标志值(S,E,L,ML)。然后才返回真实。
答案 1 :(得分:0)
以更优化的方式编写它。
$keys_to_match = ['flagS', 'flagE', 'flagL', 'flagML'];
foreach($rows as $key => $value) {
if(in_array($key , $keys_to_match) && $value[$key] ==='Yes') {
// ....
}
}
答案 2 :(得分:0)
你应该使用&&如果条件
AND操作:
&安培; - >将执行按位AND操作,它只是基于操作 位值。 &安培;&安培; - >它将执行逻辑AND操作。这只是检查值 对或错。根据布尔值,它将评估 表达
答案 3 :(得分:0)
我曾经用位操作设计标志。
define("flagS", 1);
define("flagE", 2);
define("flagL", 4);
define("flagML", 8);
define("allFlags", 15); // join all flags (flagS | flagE | flagL | flagML)
它需要更少的空间,你可以很容易地检查标志,而无需昂贵的循环 如果设置了单个标志,请使用
if($storedFlags & flagS) {
//Flag flagS is set
} else {
// Flag is not set
}
如果设置了多个,请使用
$required = flagE | flagML;
if( ($storedFlags & $required) == $required) {
// Flags flagE and flagML are set
} else {
// No or only one flag is set
}
要检查是否全部设置,只需将all required替换为allFlags或15,如果标志数没有改变。