其他声明用法

时间:2013-09-23 17:09:38

标签: php

我对其他情况有冲突。我可以通过两种方式编写程序。

  1. 方法1

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

    $msg = 'error';
    if(cond)
    {
        $msg = 'success';
    }
    
  3. 你能告诉我哪种方法更好,怎么样?感谢

4 个答案:

答案 0 :(得分:3)

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

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

这是可读的,清楚地传达了它正在尝试做的事情。 如果条件为真,则消息为success。如果没有,则消息为error

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

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

非常酷,对吗?在此处详细了解ternary operators

答案 1 :(得分:1)

使用ternary operator

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

答案 2 :(得分:1)

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

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

答案 3 :(得分: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

此外,您应该将此事称为“方法”,而不是“方法”,因为方法是类中的函数。