getter和setter的代码布局

时间:2009-06-23 09:29:41

标签: php class layout setter getter

我正在写一个有很多getter和setter的课程,并且想知道人们对以下内容的看法:

正常的方法是编码如下:

public function setChangeSort($changeSort)
{
    self::$changeSort = $changeSort;
}

public function getChangeSort()
{
    return self::$changeSort;
}

您对以下内容有何看法:

public function setChangeSort($changeSort) { self::$changeSort = $changeSort; }
public function getChangeSort() { return self::$changeSort; }

我以原始的方式做这件事是没有问题的,因为这就是它应该如何完成的。它似乎在我的classon函数中占用了很多空间,这些空间在他们的工作中非常明显。

提前致谢。

4 个答案:

答案 0 :(得分:5)

如果单行条件块是一致的,明显的和直观的,那么它们很好,虽然我鼓励小心地将它们隔开,这样很明显它们是函数而不是单行代码!

答案 1 :(得分:1)

我会选择“一线”变体。但如果只是设置并获取值。如果您为null或任何其他验证添加检查,或者执行除了获取或设置之外的任何其他操作,我将使用第一个和更长的变体来保持代码更具可读性。

答案 2 :(得分:1)

我通常以与其他方法相同的方式威胁单行方法。我不介意我的源代码是N行更长,如果它意味着它更易读和可维护。

我还建议您查看以下文件 http://framework.zend.com/manual/en/coding-standard.html 恕我直言,它是迄今为止最好的PHP编码标准参考。

答案 3 :(得分:0)

我认为PHP5的魔法助手/制定者在处理众多的getter / setter时非常有用。

http://fr.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members

一个例子。

<?php
class A {
  private $properties = array();

  public function __set($key, $value) {
    if (is_array($value)) {
      $this->$key = $value;
    } else {
      $this->properties[$key] = $value;
    }
  }

  public function __get($key) {
    if (array_key_exists($key, $this->properties)) {
      return $this->properties[$key];
    }

    return null;
  }
}
?>