php - 编写此逻辑的最简单方法

标签 php

我正在编写一个调用两个可为 null 的 bool API 的函数。如果任一 API 返回 true,我的函数应该返回 true。如果两者都返回 false,我的函数应该返回 false。否则,我的函数应该返回 null。换句话说:

true, true -> true
true, false -> true
true, null -> true
false, false -> false
false, null -> null
null, null -> null

有没有一种简单/优雅的方式来写这个?显然,像这样的 if-else 链可以工作,但我认为它相当困惑,尤其是因为您必须考虑到 null 是一个虚假值。

if ($cond1 || $cond2) {
    return true;
} else ($cond1 === false && $cond2 === false) {
    return false;
} else {
    return null;
}

最佳答案

坚持您的建议。一个改进点是您不需要 if - else 分支,因为您正在返回。您只需要两个 if:

function evaluate(?bool $cond1, ?bool $cond2): ?bool
{
    if ($cond1 || $cond2) {
        return true;
    }
    if ($cond1 === false && $cond2 === false) {
        return false;
    }
    return null;
}

关于php - 编写此逻辑的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65891920/

相关文章:

php - 在 session 中保存数据库排序

php - 比较两个非常相似的表中的所有个人记录,其中包含大量数据

php - 如果属于同一外部 ID 的所有多行都具有相同的值,则 MYSQL 更新一行

php检测浏览器

php - 迁移文件后找不到 Laravel 类

php - 表格内的下拉菜单 - 然后更新

PHP数据库获取变量

php - 使用 PHP 将 LaTeX 公式插入 MySQL 时会自动删除反斜杠

php - Magento - 初学者概念 - 主题结构

php - 如何显示五行?