我正在写一个有很多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函数中占用了很多空间,这些空间在他们的工作中非常明显。
提前致谢。
答案 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;
}
}
?>