编写此逻辑的最简单方法

用户名

我正在编写一个调用两个可为空的布尔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;
}
El_Vanja

坚持您的建议。改进之处之一是,if - else自返回以来,您无需分支。您只需要两个ifs:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实现此效果的最简单方法?

来自分类Dev

使用 Python 语法编写此 PHP 代码的最简单方法是什么?

来自分类Dev

创建用于在函数内编写的文件的最简单方法?

来自分类Dev

创建要在函数内编写的文件的最简单方法?

来自分类Dev

编写条件语句的更简单方法

来自分类Dev

在Excel中组成此多项式表达式的最简单方法是什么?

来自分类Dev

在Groovy中实现单方法接口的最简单方法?

来自分类Dev

创建包装函数的最简单方法?

来自分类Dev

获得Clojurescript REPL的最简单方法

来自分类Dev

绘制SVG路径的最简单方法

来自分类Dev

捕获JS错误的最简单方法

来自分类Dev

创建jar文件的最简单方法?

来自分类Dev

托管HTML的最简单方法

来自分类Dev

发布AAR的最简单方法

来自分类Dev

PyQT线程化的最简单方法

来自分类Dev

解析JSON响应的最简单方法

来自分类Dev

检查大写的最简单方法

来自分类Dev

备份VPS的最简单方法

来自分类Dev

从HSQLDB获取架构的最简单方法

来自分类Dev

连接到Oracle的最简单方法

来自分类Dev

加密多个硬盘的最简单方法?

来自分类Dev

使用/创建PendingIntent的最简单方法

来自分类Dev

阻止Bogon IP的最简单方法?

来自分类Dev

发布AAR的最简单方法

来自分类Dev

从 kafka 转换数据的最简单方法

来自分类Dev

Android - 获取位置的最简单方法

来自分类Dev

填充数组的最简单方法?

来自分类Dev

编写此代码的更简单方法:if(例程!== null &&例程.exercises!==未定义&&例程.exercises.length> 0)

来自分类Dev

在OpenGL(OpenTK)中显示简单图像的最简单方法?