变量类型在远程​​类中为null

时间:2011-07-07 00:01:42

标签: php

这是我的主要课程

class pMr {
    const VERSION = '0.0.3';
    public $_connection;
    private $_sessionName = 'LoginSession';

    public function __construct($function = null) {
        ...
            $this->buildConnection('Predis');
        ...
    }

    private function buildConnection($type = 'Predis') {
        ...
            if($type == 'Redis') {
                ...
            } else if($type == 'Predis') {
                try {
                    $this->_connection = new Predis\Client(array(
                        'host'     => $_SESSION[$this->_sessionName]['hostname'],
                        'password' => $_SESSION[$this->_sessionName]['password'], 
                        'database' => $_SESSION[$this->_sessionName]['database'], 
                    ));
                } catch (ClientException $e) {
                    die($e->getMessage());
                }
                var_dump(gettype($this->_connection));  
            }
        }
    }
}

现在,当代码运行时,我得到string(6) "object",这是预期的。现在,这是另一个类,它被加载到主类中,然后执行(调用一个函数)。

class Interface {
    static $_execOnLoad = true;
    public static function getRedisVersion() {
        global $pMr;
        var_dump(gettype($pMr->_connection));
    }
}

现在,在该函数中(当它被调用时),返回NULL。这是在上面的代码中作为对象返回的相同变量。为什么会这样,有什么工作?

1 个答案:

答案 0 :(得分:0)

对两个对象执行var_dump($pMr);并查看其对象#。我打赌你只是有不同的对象。