本帖最后由 mailghyth 于 2009-09-04 17:23:25 编辑

解决方案 »

  1.   

    Mage::getSingleton('core/resource')返回的是一个对象,getConnection是返回的这个对象的一个方法.
      

  2.   

    我看了一下Mage::getSingleton('core/resource')返回的是一个数组
    请问数组的对象里有自带的getConnection方法吗???
    你说的我也懂
      

  3.   

    Mage::getSingleton('core/resource')
    应该返回一个类的实例->用来访问类的公用成员函数getConnection
      

  4.   

    下面的方法和变量全部都是Mage.php文件里Mage类的
    static private $_registry = array();public static function getSingleton($modelClass='', array $arguments=array())
        {
            $registryKey = '_singleton/'.$modelClass;
            if (!Mage::registry($registryKey)) {
                Mage::register($registryKey, Mage::getModel($modelClass, $arguments));
            }
            return Mage::registry($registryKey);
        }public static function registry($key)
        {
            if (isset(self::$_registry[$key])) {
                return self::$_registry[$key];
            }
            return null;
        }
    php写的可真是奔放阿
      

  5.   

    return Mage::registry($registryKey); 这里.
    你在前面print_r下Mage::registry($registryKey);怎么可能是数组?if (!Mage::registry($registryKey)) {
            Mage::register($registryKey, Mage::getModel($modelClass, $arguments));

    这里很清晰了,如果Mage::registry($registryKey)不存在,就实例化一个,实例化成功后,将利用Mage的$_registry数组,根据$registryKey建立key与对象的hash关系.
    注意:Mage::register !== Mage::registry,Mage::register是另外一个方法,你没贴出来,不过可以想象它是干什么的.