Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果不是具有特定值的多个条件_Php_If Statement - Fatal编程技术网

Php 如果不是具有特定值的多个条件

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 */ } 那么,有

我有两个变量:

1)
$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该死的双重否定,更新应该会执行所需的行为。令人惊讶的是,这起作用了!所以一个双重否定检查实际上会导致两个条件被视为一个单位,即使我有双重管道
| |
?基本逻辑是,如果你否定了条件和约束条件的子句,你就有效地否定了你所问的问题。例如,你可以说如果这两件事都是真的,那么就什么也不做,否则就做些什么,而不是说如果这两件事都是假的,那么就做些什么。