簡體   English   中英

獲取器和設置器的代碼布局

[英]Code Layout for getters and setters

我正在編寫一個包含許多吸氣劑和吸氣劑的課程,並且想知道人們對以下內容的看法:

正常的方式是如下代碼:

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函數中占據了很多空間,這些空間在它們的工作中確實很明顯。

提前致謝。

如果它們是一致的,顯而易見的和直觀的,則單行條件塊就可以了,盡管我鼓勵小心地將它們隔開,所以很明顯它們是函數而不是某些單行代碼!

我會選擇“單行”變體。 但是, 只有要做的就是設定並獲得價值。 如果您添加了一個用於null或其他任何驗證的檢查,或者執行除獲取或設置以外的任何其他操作,則我會采用第一個也是更長的版本,以使代碼更具可讀性。

我通常以與其他方法相同的方式威脅單行方法。 我不介意我的源代碼更長一些,因為這意味着它更具可讀性和可維護性。

我也建議您查看以下文檔http://framework.zend.com/manual/zh-CN/coding-standard.html恕我直言,這是迄今為止最好的PHP編碼標准參考。

我認為PHP5的神奇的getter / setter在處理大量的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;
  }
}
?> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM