当前位置:编程学习 > php >>

php中类的构造函数参数问题

详细代码如下:
<?php
final class Registry {
    private $data = array();
    public function get($key) {
        return $this->data[$key];
    }
    public function set($key, $value) {
        $this->data[$key] = $value;
    }
}
abstract class Controller {
    protected $registry;   
    public function __construct($registry) {
        $this->registry = $registry;
    }
}
class ControllerCommonHome extends Controller {
    public function test() {
        $this->registry->set('load','load');
    }
}
$registry = new Registry();
$con = new ControllerCommonHome($registry);
$con->test();
echo $registry->get('load');
?>
在$con对象初始化时传入的参数$registry是以何种方式传入的?传值还是传地址?如果是传值,那么在$con对象执行函数test()时应该不会影响到原对象$registry,但事实是影响到了registry的值。
但是如果我把$registry改成一个简单变量,例如$registry = 123,同样是在$con对象中对$registry赋值,这个时候却没有影响到原来的变量,仍然是123。
求解
追问:那在C++里是不是也这样?
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,