使用IF()更高效,简单或嵌套的条件

时间:2014-07-10 04:47:03

标签: php function

我是新手,只是想询问有关编程的内容。我希望你们帮我理解:)

这两个函数之间的编码和性能更高效吗? 第一个函数使用嵌套条件,第二个函数使用简单条件, 哪个更好实施?

function optionOne()
{
    $a = getData();
    $return = array();

    if ($a === false) {
        $return['error'] = true;
    } else {
        $b = getValue();
        if ($b === false) {
            $return['error'] = true;
        } else {
            $c = getVar();
            if ($c === false) {
                $return['error'] = true;
            } else {
                $return['error'] = false;
                $return['message'] = 'congrat!';
            }
        }
    }

    return $return;
}

function optionTwo()
{
    $return = array();

    $a = getData();
    if ($a === false) {
        $return['error'] = true;
        return $return;
    }

    $b = getValue();
    if ($b === false) {
        $return['error'] = true;
        return $return;
    }

    $c = getVar();
    if ($c === false) {
        $return['error'] = true;
        return $return;
    } else {
        $return['error'] = false;
        $return['message'] = 'congrat!';
    }

    return $return;
}

先谢谢你们,

2 个答案:

答案 0 :(得分:1)

function option()
{
 $return=array();
 $return['error'] = true;

 switch(getData()){

 case false:
 return $return;
 break;

 case true:
 if(getValue()==false){return $return;}
 else{
 if(getVar()==false){return $return;}
 else{
 $return['error'] = false;
 $return['message'] = 'congrat!';}
 }
 break;

 default:
 return 'getData() return null value';
 break;
 }

}

我尝试将切换方法应用于您的功能,作为您的选项之一

答案 1 :(得分:0)

一个更简洁的选项是让3个函数在出现错误时抛出异常而不是返回布尔值false。无论如何,这就是例外情况。然后在您的函数中,您可以将调用包装在try-catch块中。

function option {
  $return = array();
  try {
    $a = getData();
    $b = getValue();
    $c = getVar();

    $return['error'] = false;
    $return['message'] = 'congrat!';
  } catch(Exception e) {
    $return['error'] = true;
  }

  return $return;
}