3

我最近一直在阅读有关如何在 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()),这就是不鼓励的原因。

但是,我看到很多人仍在使用不鼓励的方法(教程、代码示例等)。我可以理解他们是否必须出于某种原因将属性设置为私有,但通常情况并非如此。

所以我的问题是,使用不鼓励的方法有什么好处或我缺少的东西吗?如果是这样,是什么?

4

2 回答 2

5

有人使用gettersetter方法的原因是由于encapsulation。直接访问$something会同时呈现它readablewriteable,但是通过访问它只getSomething()会给调用者一个副本(即不会改变原始值)。

于 2012-07-10T14:44:48.183 回答
2

如果您想稍后将某些逻辑应用于“GetTitle”,例如过滤器或通过引入特殊逻辑来更改某些输出,该怎么办?你永远不知道这些东西什么时候会开始出现。

此外,人们说函数访问器样式较慢是使用 100 万个循环来对其进行基准测试,但说真的,您要在页面上显示 100 万个标题吗?

于 2012-07-10T14:45:37.590 回答