我对获得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;
}
}
我认为他们与上面的例子没什么区别,但我认为可能与更复杂的代码有显着差异。
答案 0 :(得分:6)
性能差异可以忽略不计。你应该确定哪种模式最适合你的类结构。
您的班级是否依赖于$a
和$b
才能正常运作?把它们放在构造函数中。
SomeMethod
公开吗?它提供的变量是否超出它返回的范围?如果是这样,请将它们作为参数保存。
在大型项目中,您将从准确的课程设计中获得更多好处,而不是可忽略的性能提升。