2011-07-02 127 views
1

我确信这个问题已被问过千次,但我无法找到我能够理解或在任何地方使用的答案。通过引用或值传递对象

在我的项目中,我需要在很多类中使用我的sql类和其他misc类。然后我很生气地想知道传递对象的最佳方式是什么。

我应该将对象传递给类构造作为参考吗?

class MyClass { 
    private $_link; 

    function __construct(&$db) { 
     $this->_link =& $db; 
    } 
} 

或价值..

class MyClass { 
    private $_link; 

    function __construct($db) { 
     $this->_link = $db; 
    } 
} 

或简单地创建一个新的对象?

class MyClass { 
    private $_link; 

    function __construct() { 
     $this->_link = new DB(); 
    } 
} 
+0

[何时通过PHP引用](http://stackoverflow.com/questions/2157799/when-to-pass-by-reference-in-php) – Drazisil

+1

请参阅此处的示例:http:///php.net/manual/en/language.oop5.references.php –

回答

2

如果您使用的是PHP5 +,几乎在所有情况下,对象都是默认情况下通过引用传递的。

+0

“默认情况下”听起来像是如果你使用'&'通过引用传递的话,当它不同时它会是相同的 – user102008