Php 如果不是具有特定值的多个条件
我有两个变量: 1)Php 如果不是具有特定值的多个条件,php,if-statement,Php,If Statement,我有两个变量: 1) $key:此变量可以包含单词未知 2) $val:此变量可以包含0,0或一些其他值 我想运行一个脚本,以防$key不包含Unknown和$val不等于0,0。因此,如果两个变量都只有上述值,则跳过脚本 因此,我有以下代码: if(strpos($key, 'Unknown') !== false && $val == '0,0') { /* do nothing! */ } else { /* continue script */ } 那么,有
$key
:此变量可以包含单词未知
2) $val
:此变量可以包含0,0
或一些其他值
我想运行一个脚本,以防$key
不包含Unknown
和$val
不等于0,0
。因此,如果两个变量都只有上述值,则跳过脚本
因此,我有以下代码:
if(strpos($key, 'Unknown') !== false && $val == '0,0') {
/* do nothing! */
}
else {
/* continue script */
}
那么,有没有更好的方法来实现上述目标,而不必使用这个空if条件呢?只要简单地否定条件语句即可
if(strpos($key, 'Unknown') === false || $val != '0,0') {
/* continue script */
}
您可以提前退出代码块:
if(strpos($key, 'Unknown') !== false && $val == '0,0') {
return;
}
/* continue script */
如果(否定条件或其他条件)你对更好的定义是什么?性能更好?更具可读性?就目前的情况来看,它非常固执己见,因此不受欢迎-topic@k0pernikus我认为如果有什么事情,什么也不做,其他的,做,这是没有意义的this@bassxzero你能再解释一下还是给个答案?谢谢@MichaelSamuel您可以不做任何事情而提前执行
返回
(或者如果在循环中a继续
),然后您可以删除else语句,只需正常进行编码即可。您甚至可能会根据用例抛出异常并在try-catch-block中处理该异常。现在,如果$key
不等于Unknown
,脚本将不会继续:)@MichaelSamuel该死的双重否定,更新应该会执行所需的行为。令人惊讶的是,这起作用了!所以一个双重否定检查实际上会导致两个条件被视为一个单位,即使我有双重管道| |
?基本逻辑是,如果你否定了条件和约束条件的子句,你就有效地否定了你所问的问题。例如,你可以说如果这两件事都是真的,那么就什么也不做,否则就做些什么,而不是说如果这两件事都是假的,那么就做些什么。