簡體   English   中英

返回 object 實例的引用

[英]Return a reference of an object instance

我正在研究支持多種數據庫方法的 MPTT object。 首先是 MySQL 和 MySQLi。 現在我已經這樣創建了

Mptt - 將加載正確子 object 的主 object

class Mptt {
/**
 * Array of available driver types
 * @var array
 */
private $availableDrivers = array('mysqli','mysql');

/**
 * Holding an instance of the mptt object corresponding to the selected driver
 * @var object
 */
public $instance;

public function __construct($driver = 'mysqli', $autoConnect = false, $info = array())  {
    if (in_array($driver, $this->availableDrivers)) {
        switch ($driver) {
            case 'mysqli':
                $this->instance =& new Mptt_MySQLi();
                break;

            case 'mysql':
                $this->instance =& new Mptt_MySQL();
                break;
        }

        return $this->instance;
    }
}
}

現在,我成功完成這項工作的唯一方法就是做類似的事情

為每個驅動程序添加公共變量並這樣做

$mptt = new Mptt('mysqli');
$mptt->mysqli->addBranch(.....);

但我不想要那個mysqli-> part .. 所以我想如果我可能試圖將$this->instance作為引用傳遞,那么$mpttMptt_MySQLi ..

希望有人知道這個問題的答案..

在此先感謝-Ole

首先,在new之前不需要& ,如在 PHP 中,默認情況下通過引用傳遞 5 個對象。 您所做的是正確的,但是您不能在構造函數中執行此操作,您必須定義getInstance()方法,該方法將構造您的 object 並返回對$this->instance的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM