php - $classInstance->title 比 $classInstance->getTitle() 快 - 为什么大多数人使用较慢的方法?

标签 php performance oop scalability

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

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

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

最佳答案

有人之所以使用gettersetter方法,是因为封装。直接访问 $something 会使其既可读可写,但是通过 getSomething() 访问它只会给调用者一个副本(即不会改变原始值)。

关于php - $classInstance->title 比 $classInstance->getTitle() 快 - 为什么大多数人使用较慢的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11415806/

相关文章:

javascript - 从 html 事件调用 javascript 类方法的正确方法

javascript - 保持服务器连接打开与定期请求更新

wcf - ChannelFactory<T> 与使用 Svcutil 的预生成代理的性能

python - Numpy 矩阵行比较

MySQL INSERT 速记与普通性能

c# - 接口(interface)可以包含变量吗?

php - MySQL 只返回查询结果中的{第一行}!

php - MYSQL PDO 更新日期时间不执行任何操作

php - 按 ID 分组并显示来自 mysql 的所有结果

java - 如何从适用于多个类类型的方法返回实际类型而不是对象类型?