访问PHP类属性的最佳方法是什么?我可以使用内置的php访问器魔术方法,还是应该对get*()
和set*()
方法进行硬编码。当我在大型代码库上工作时,以后重构代码最有效和最佳。我问这是一个非常大的代码库。将其视为社交网络的发展。
答案 0 :(得分:0)
如果我不知道它的目的,我不能说更好还是更坏。
在我看来,最好使用专门的getter / setter而不是编码__get()
或__set()
魔术方法。
出于以下两个原因:
__get()
或__set()
。有时候我会使用像
这样的东西public function __get($name){ // no error handling, but should be some
return $this->{'get'.$name}();
}
和getter一样
public function getX(){ ...}
public function getY(){ ...}
等等。
这可以让我缩短打字时间,但让所有人都能得到吸气。
调用伪属性对我来说也有一些不利之处,因为任何警告/错误/异常/ ...都会在__get()
方法中发送,而不是在getter中发送 - 我不知道是什么{{1给出了等等。
修改强>
使用专用方法获取和设置属性在继承中也更加清晰。记录软件可以标记getter被覆盖,所以我知道哪个类改变了代码,哪个类使用了它的祖先代码。在$name
中,如果我更改__get()
的代码,则会将其标记为已覆盖。 “坐标”,但我不改变“seaLevel”(我的意思是它并不总是清楚被覆盖的内容)。