首页 > 解决方案 > 如何在 php 中的 IF 中使用 OR 运算符?

问题描述

我一直在尝试在 PHP 中执行此代码:

if(!afunction() || !anotherfunction()) {code}

这些函数是预定义的并返回真或假,但只有第一个条件有效,第二个条件无效。

标签: php

解决方案


这是由于大多数语言都进行了常见的优化。

  • 在表达式A || Bif的A计算结果中,true根本没有理由进行计算B,因为无论B返回什么结果,表达式都只能是true.
  • 在表达式A && Bif的A计算结果中,false根本没有理由进行计算B,因为无论B返回什么结果,表达式都只能是false.

如果您希望这两个函数始终运行,那么您需要在逻辑表达式的上下文之外执行此操作,例如:

$a_result = a();
$b_result = b();

if( ! $a_result || ! $b_result ) {
  // code
}

推荐阅读