【发布时间】:2012-10-12 00:57:44
【问题描述】:
我很想获得 OOP 问题的答案,但目前找不到任何信息。
在这里,编写类和方法是为每个方法传递参数或使用实例/字段变量和 $this->x;
哪个在运行时更快?
class ExampleByParameter(){
function SomeMethod($a,$b){
echo $a." ".$b;
return;
}
}
或
class ExampleByInstance(){
function __construct($a,$b){
$this->a=$a;
$this->b=$b;
}
function SomeMehtod(){
$a=$this->a;
$b=$this->b;
echo $a." ".$b;
return;
}
}
我想它们与上面的示例没有区别,但我认为更复杂的代码可能会有显着差异。
【问题讨论】:
-
这充其量只是一个微优化。不要专注于它。
-
想想可用性:如果你在另一个函数中需要 $a 和 $b 怎么办?你每次都会传入参数吗?它是程序性的,不再是 OOP
-
ExampleByInstance 可能比 ExampleByParameter 更快。
-
首先按照你的意思编写代码! 性能不是这里的决定因素,它是类设计和你的代码应该做什么的问题。如果完全存在,性能差异将是最小的,您将不会看到整体 300% 的加速或类似的东西。当您的程序被证明太慢时,请担心性能!
-
这种决定必须考虑类的公共接口,而不是性能。
标签: php performance oop parameters instance-variables