PHP OOP性能:参数或实例变量?

时间:2012-10-22 08:38:42

标签: php performance oop parameters instance-variables

我对获得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;
 }

}

我认为他们与上面的例子没什么区别,但我认为可能与更复杂的代码有显着差异。

1 个答案:

答案 0 :(得分:6)

性能差异可以忽略不计。你应该确定哪种模式最适合你的类结构。

您的班级是否依赖于$a$b才能正常运作?把它们放在构造函数中。

SomeMethod公开吗?它提供的变量是否超出它返回的范围?如果是这样,请将它们作为参数保存。

在大型项目中,您将从准确的课程设计中获得更多好处,而不是可忽略的性能提升。