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

cos*_*ari 1 php oop parameters performance instance-variables

我很好奇得到一个OOP问题的答案,但到目前为止找不到任何信息.

在这里,编写类和方法是为每个方法传递参数或使用实例/字段变量和$ this-> x更快;

哪个在运行时会更快?

class ExampleByParameter(){

 function SomeMethod($a,$b){
 echo $a." ".$b;
 return;
 }

}
Run Code Online (Sandbox Code Playgroud)

要么

class ExampleByInstance(){

 function __construct($a,$b){
 $this->a=$a;
 $this->b=$b;
 }

 function SomeMehtod(){
 $a=$this->a;
 $b=$this->b;
 echo $a." ".$b;
 return;
 }

}
Run Code Online (Sandbox Code Playgroud)

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

CAM*_*son 6

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

您的班级是否依赖$a并且$b正常运作?把它们放在构造函数中.

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

在大型项目中,您将从准确的班级设计中获得更多收益,而不是可忽略的性能改进.