我最近一直在阅读有关如何在PHP中优化代码以实现可伸缩性的文章。我今天读过的一些文章不鼓励使用其他方法简单地从类中返回对象。
基本上,他们说:
如果您有这样的课程:
class myClass
{
public $something;
public function setSomething($val)
{
$this->something=$val;
}//function end
}//class end
$myClassInstance=new myClass;
你想获得类属性$something
,你应该这样做:
//echo $something from myClass
echo $myClassInstance->something;
而不是这个:
//echo $something from myClass using an additional method (getSomething()) that returns the property
echo $myClassInstance->getSomething();
因为存在速度差异。不鼓励的方法较慢($myClassInstance->getSomething()
),这就是不鼓励的原因。
但是,我看到很多人仍在使用劝阻方法(教程,代码示例等)。我可以理解他们 是否因为某种原因将属性设置为私有,但通常情况并非如此。
所以我的问题是,使用劝阻方法是否有一些好处或缺点?如果是这样,是什么?
答案 0 :(得分:5)
有人使用getter
和setter
方法的原因是encapsulation
。直接访问$something
会同时呈现readable
和writeable
,但是通过getSomething()
访问它只会给调用者一个副本(即不会改变原始值)
答案 1 :(得分:2)
如果你想在你的" GetTitle"中应用一些逻辑怎么办?后来如过滤器或通过引入特殊逻辑改变一些输出?你永远都不知道这些东西什么时候会爆发出来。
另外,人们说功能访问器风格较慢,使用100万个循环来对其进行基准测试,但严重的是,你要在一个页面上显示100万个标题吗?