首页 新闻 搜索 专区 学院

关于PHP OOP对象引用的一个问题

0
悬赏园豆:20 [已解决问题] 解决于 2012-09-03 20:41
<?php

class controller {
    var $db;
    var $user;
    
    function init_db() {
        $this->db = new db();
        $this->db->host = 'localhost';
    }
    
    function init_user() {
        $this->user = new user($this);
    }
}

class db {
    var $host;
}

class user {
    var $controller;
    var $db;
    function __construct(&$controller) {
        $this->controller = $controller;
        $this->db = $controller->db;
    }
    
    function login() {
        var_dump($this->db);
    }
}


$controller = new controller();
$controller->init_user();
$controller->init_db();

$controller->user->login(); // Output NULL, Why not output localhost

关于上面的代码,最后一行为什么不输出 localhost

HuaZai的主页 HuaZai | 菜鸟二级 | 园豆:206
提问于:2012-08-26 14:20
< >
分享
最佳答案
1
$this->user = new user($this);
代码中这句实例化的时候传入的是当前对象 即为
$controller = new controller();相对应的参数分别是$db 和$user  分别是空值,所以不会输出你想要的结果;
收获园豆:10
lifeyun | 菜鸟二级 |园豆:265 | 2012-08-26 23:07
 $this->db = & $controller->db;

这样就对了  在user类里

HuaZai | 园豆:206 (菜鸟二级) | 2012-09-03 20:40
其他回答(1)
0

目前输出的是什么?

收获园豆:10
dudu | 园豆:37795 (高人七级) | 2012-08-26 15:49

NULL

支持(0) 反对(0) HuaZai | 园豆:206 (菜鸟二级) | 2012-08-26 22:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册