У меня есть следующий код:
$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);
Каждый метод getInstance () выглядит следующим образом:
public static function getInstance()
{
if (self::$_instance == null)
{
self::$_instance = new self;
}
return self::$_instance;
}
Оба класса расширяют один и тот же класс Extension_Abstract, но по какой-то причине перечисленный оператор отладки print_r выводит следующее:
stdClass Object (
[MySQL] => MySQL_Extension Object
[Error] => MySQL_Extension Object
)
У вас все есть идеи, почему он будет возвращать два объекта "MySQL_Extension" и полностью игнорировать класс Error_Extension? Я так растерялся!