php - 编写此逻辑的最简单方法
问题描述
我正在编写一个调用两个可为空的布尔 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
s:
function evaluate(?bool $cond1, ?bool $cond2): ?bool
{
if ($cond1 || $cond2) {
return true;
}
if ($cond1 === false && $cond2 === false) {
return false;
}
return null;
}
推荐阅读
- visual-studio-2013 - 错误 - 系统找不到指定的文件
- php - 为什么我在 php 文件中出现意外的“}”语法错误
- python - 我需要在句子中找到一个单词,然后捕获到控制字符
- c# - 在android中添加singalr Dependency会导致库依赖错误
- android - 如何在用户在 Android 中的 EditText 中输入的每个新行上添加项目符号?
- elm - 如何使用 Elm 保留错误颜色而不是全红色
- list - 在 Terraform 的 file() 中使用函数 var{count.index} 创建 AWS IAM 策略
- javascript - 如何修复 Firefox 的窗口滚动事件监听器?
- c++ - 类定义中的“错误:'a'没有命名类型”
- c# - 如何在从数据库“对象或列名丢失或为空”加载数据时修复运行时错误。