为了账号安全,请及时绑定邮箱和手机立即绑定

变量引用范围

变量引用范围

PHP
吃鸡游戏 2023-04-15 16:33:53
class A {  public $o;  function __construct(&$o) {    $this->o = $o;  }  function set($v) {    $this->o["foo"] = $v;  }}$o = ["hello" => "world"];$a = new A($o);$a->set(1);echo json_encode($a->o)  // { "hello": "world", "foo": 1 }echo json_encode($o)  // { "hello": "world" }我必须怎么做才能让输出 #2 像输出 #1 一样?
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

使用引用参数是不够的。您需要将您设置$this->o为对以下内容的实际引用$o

$this->o = &$o;


查看完整回答
反对 回复 2023-04-15
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

将值传递给变量时,必须在构造函数中指定对参数的引用。


function __construct(&$o) {

  $this->o = &$o;

}

输出:


echo json_encode($a->o);  // { "hello": "world", "foo": 1 }

echo json_encode($o);  // { "hello": "world", "foo":1 }


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信