0

我对其他条件有冲突。我可以用两种方式编写程序。

  1. 方法一

    $msg = '';
    if(cond)
    {
        $msg = 'success';
    }
    else
    {
        $msg = 'error';
    }
    
  2. 方法二

    $msg = 'error';
    if(cond)
    {
        $msg = 'success';
    }
    

你能告诉我哪种方法更好,怎么做?谢谢

4

4 回答 4

3

两者之间,我会选择第一个。

$msg = '';
if(cond) { 
    $msg = 'success'; 
} else { 
    $msg = 'error'; 
}

这是可读的,并且清楚地传达了它想要做什么。如果条件为真,则消息将为success。如果不是,则消息将是error

但是对于上述非常简单的事情,我会改用三元语句。它非常有用,可以减少代码,但在某些情况下可能会使您的代码不可读:

$msg = (cond) ? "success" : "error";

很酷,对吧?在此处阅读有关三元运算符的更多信息。

于 2013-09-23T17:13:54.767 回答
1

使用三元运算符

$msg = (cond) ? 'success' : 'error';
于 2013-09-23T17:13:21.277 回答
1

我会说第二个更好,因为它的行数更少并且具有默认行为。无论如何,你知道 $msg 将包含一些东西,即使你在路上添加了其他检查。但是,在这种情况下,我会使用三元运算符:

$msg = (cond) ? 'success' : 'error';

于 2013-09-23T17:14:47.433 回答
1

代码可读性很重要,所以当它真正简化外观时,我会使用三元运算符。考虑到这一点,

function foo($stuff) {

  $var = null;

  if ($stuff === true) {
    $var = true;
  } else {
    $var = false;
  }

  return $var !== null ? true : false;
}

由于在这种情况下,return $var !== null ? true : false它很短,因此可以认为是“易于阅读和理解”。

考虑到这一点,

function foo($stuff) {

  $var = null;

  if ($stuff === true) {
    $var = true;
  } else {
    $var = false;
  }

  if ($var !== null) {
     return true;
  } else {
     return false;
  }
}

一样的东西,但是有点长

结论

  • 如果条件不是那么长,可以坚持使用三元运算符(因为可读性)。但如果不是,那么你最好坚持if/else

你也应该把这个东西称为“方法”,而不是“方法”,因为方法是类中的一个函数。

于 2013-09-23T17:42:21.527 回答