PHP Singleton Oyunculuk Komik

0 Cevap php

Ben aşağıdaki kodu vardır:

$e1 = call_user_func(array("MySQL_Extension", "getInstance"));
$e2 = call_user_func(array("Error_Extension", "getInstance"));
self::$extensions->MySQL = $e1;
self::$extensions->Error = $e2;

// Debug
echo "<pre>";
print_r(self::$extensions);

Her getInstance () yöntemi, bu gibi görünüyor:

public static function getInstance()
{
    if (self::$_instance == null)
    {
        self::$_instance = new self;
    }

    return self::$_instance;
}

Her ikisi de sınıfları aynı "Extension_Abstract" sınıfını genişleten, ama nedense, listelenen "print_r" hata ayıklama ifadesi aşağıdaki çıktılar:

stdClass Object (
    [MySQL] => MySQL_Extension Object
    [Error] => MySQL_Extension Object
)

Iki "MySQL_Extension" nesneleri dönen ve tamamen Error_Extension sınıfını görmezden olacağını neden herhangi bir fikrin var mı? Kafam karıştı!

0 Cevap