2010-01-22 29 views
3

我想知道是否有任何額外的開銷在PHP中使用對象而不是基於下面的示例使用靜態方法?使用PHP類對象和靜態類方法是否有任何開銷?

Sesseion從會話類對象

$session = new Session; 
$session->set(user_id, $uswer_id); //set session var 
$session->get(user_id);   // get session var 

VS


從會話類靜態方法

Session::set(user_id, $uswer_id); //set session var 
Session::get(user_id);   // get session var 
+0

相關並與一些性能測試:http://stackoverflow.com/questions/1472721/php-performance-of-static-methods-vs-functions – SunnyRed 2011-08-15 12:54:04

回答

2

由於需要創建對象並將其放置在內存中,所以會有一些開銷。但問題是,它是否顯而易見?

我的意見是,你應該看看哪些方法最方便。這種優化主要是微觀優化

5

您可以使用memory_get_usage()測試內存使用情況。我會假設靜態類使用較少的內存。但差異可能可以忽略不計。無法訪問您的項目,我只能鼓勵您使用上述功能設置您自己的小測試來查看案例。

1

在OO語言中,靜態方法和對象各有優缺點。基於系統配置,靜態方法和對象所使用的資源量可能存在細微差異,並且它們的性能可能因系統而異。

對象可以被聲明和使用多次,而不像靜態方法那樣作用像全局變量。即使如此,對象和靜態方法的使用依賴於項目。

相關問題