从函数处理FALSE返回,调用另一个函数的“最佳”方法是什么?例如,我有“$ stmt-> execute();”来自PDO并想知道查询执行失败的时间。
演示:
function test() {
return false;
}
function error($err) {
echo $err;
}
if (!test()) error('a'); // method 1
test() OR error('b'); // method 2
test() || error('c'); // method 3
test() ?: error('d'); // method 4
这将显示“abcd”。如果我将test()更改为true,则不会显示任何内容,因此所有4种方法都有效。但什么是“最好的”?如果所有方法在编程方式上都是相同的“正确”,那么对于像PSR这样的编码标准,更常用,更好,更现代,更正确?也许还有另一种更好的方法?
答案 0 :(得分:1)
在这个非常简单的例子中,我认为这确实是一个选择问题。因为如果测试失败只有一个语句要执行,如果它通过则无需执行任何操作,一切都很容易适用于一行。除了最后一行之外的任何东西都很容易阅读,可能还不错。
但在大多数情况下,true/false
测试的结果将导致不仅仅是一个语句。这个二进制分支是if-else
构造的全部目的,所以我倾向于使用它。
if(test()){
statement1();
statement2();
...
}else{
statement3();
statement4();
...
}