这是我的主要课程
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。这是在上面的代码中作为对象返回的相同变量。为什么会这样,有什么工作?
答案 0 :(得分:0)
对两个对象执行var_dump($pMr);
并查看其对象#。我打赌你只是有不同的对象。