0

私はゲッターとセッターがたくさんいるクラスを書いていて、人々が次のことについてどう思っているのか疑問に思っていました。

通常の方法は、次のようにコーディングすることです。

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; }

私はそれを元の方法で行うことに問題はありません。それがそれが行われるべき方法だからです。私のクラスン関数では、それらが何をしているのかが非常に明白であるため、多くのスペースを占有しているようです。

前もって感謝します。

4

4 に答える 4

5

1行の条件付きブロックは、一貫性があり、明白で直感的であれば問題ありませんが、慎重に間隔を空けることをお勧めします。そうすれば、1行のコードではなく、関数であることがすぐにわかります。

于 2009-06-23T09:31:21.043 に答える
1

私は「1行」のバリエーションで行きます。ただし、値を設定して取得するだけの場合に限ります。nullやその他の検証のチェックを追加する場合、または取得や設定以外のことを行う場合は、コードを読みやすくするために、最初の長いバリエーションを使用します。

于 2009-06-23T09:35:30.817 に答える
1

私は通常、他の方法と同じように 1 行の方法を脅します。ソースコードがより読みやすく保守しやすいという意味であれば、ソースコードが N 行長くなってもかまいません。

次のドキュメントをチェックアウトすることもお勧めします http://framework.zend.com/manual/en/coding-standard.html IMHO これは、これまでに入手可能な最高の PHP コーディング標準リファレンスです。

于 2009-06-23T09:49:31.133 に答える
0

PHP5の魔法のゲッター/セッターは、多数のゲッター/セッターを扱うときに本当に役立つと思います。

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;
  }
}
?> 
于 2009-06-23T09:34:52.503 に答える