首页 > 解决方案 > 有没有一种“有条件的回报”

问题描述

我正在编写一个调用其他函数的函数,直到其中一个函数返回“非假”值。这个值应该由主函数返回。重写这个函数的最短方法是什么,这样它就不会调用其他函数两次,并且 - 如果可能的话 - 避免使用额外的变量?

function doSomething(){
    if (tryA()) return tryA();
    if (tryB()) return tryB();
    if (tryC()) return tryC();
    return screwIt();
}

标签: phpfunctionreturnconditional-statements

解决方案


您可以使用三元运算符:

return tryA() ?: (tryB() ?: (tryC() ?: screwIt()));

3v4l.org 上的演示


推荐阅读