在php中使用资源的情况下,哪种方法更有效

在php中使用资源的情况下,哪种方法更有效,php,Php,我有一个共享主机。因此,我必须考虑很多资源使用,因为任何额外的资源使用都会导致由于过度资源使用而导致站点暂停的机会更高 在php类中,属性可以从声明中获取,也可以作为函数中的参数获取,如下所示: class sum{ public $a; public $b; public function sum(){ echo $a.' and '.$b; } } $sum = new sum(); $sum->$a = 'Large Variable'; $sum->b = 'Short

我有一个共享主机。因此,我必须考虑很多资源使用,因为任何额外的资源使用都会导致由于过度资源使用而导致站点暂停的机会更高

在php类中,属性可以从声明中获取,也可以作为函数中的参数获取,如下所示:

class sum{
public $a;
public $b;

public function sum(){
echo $a.' and '.$b;
}
}

$sum = new sum();
$sum->$a = 'Large Variable';
$sum->b = 'Short Variable;
或者也可以通过以下方式实现:

class sum{
public function sum($a=NULLL,$b=NULL){
echo $a.' and '.$b;
}
}
$sum = new sum();
$a = 'Large Variable';
$b = 'Short variable';
$sum->sum($a,$b);
在上面的例子中,let$a是一个大变量,比如javascript或页眉部分

我假设,如果我设置了一个变量,那么服务器会在系统中分配一个内存位置、大小等。假设我在过程php中设置了10个变量,系统为这10个变量分配了10个位置。每次我访问单个变量时,服务器对系统的10个不同位置使用读取操作。因此,它增加了读/写操作/资源使用

另一方面,在对象模型中,服务器为整个对象分配内存,对象内的属性没有额外的空间或位置分配。所以,若我访问对象的属性,系统只从一个位置(对象的位置)读取。因此,它可能会减少资源使用。但这完全是我的假设,我不确定内存和位置访问是否会这样工作

所以,如果在上面的对象外部或对象内部设置$a,上面哪一个将使用更多的cpu使用率、内存和服务器的入口进程


提前感谢

第二种方法更好,因为变量的范围以函数的范围结束。在第一种方法中,公共变量将与对象一起存在,直到并且除非对象从内存中删除


不过我还是要说,这取决于系统的要求。

在第一种情况下,您需要使用
echo$this->a.'和'$this->b,但您确实在关注微观优化,而且几乎可以肯定存在比这更严重的资源问题。有些人总是持否定态度。这只是一个例子,不是真正的代码。我的目的不是以正确的方式显示代码,可能会有输入错误,因为这不是真正的代码,也不是问题所在。我一开始说了为什么我担心资源使用,我不知道这是微观优化还是对资源使用有很大影响。如果我想知道,那么你的问题是什么呢?问题是很多人认为这样的“微优化”可能会节省一个字节或两个内存,或者一个纳秒或两个执行时间对他们的应用程序的性能是至关重要的,当其他地方他们不必要地把大量的数据加载到内存中时,或者有效率很低的数据库查询,或者过于复杂的循环,其他这些效率低下的问题确实有很大的影响,但是他们不愿意去看这些问题。。。。在这种情况下,除非您正在实例化sum类的数百万个实例,否则您将发现这种差异是不可能的。如果您对其进行测量,您还会发现,虽然第一个示例可能会使用更多内存(每个实例大约96字节,加上字符串的长度),它也可能更快,因为在调用sum方法时,您没有将值推送到参数堆栈上的开销,第二个示例就是这样做的。。。。那么,哪个资源对您更重要,处理器周期还是内存?