webman 上下文 context::set 传参问题

speedy

先看案例

$_self = new self('zh-CN'); //新建实例,初始化 lang 为 zh-CN
context::set('translateService', $_self); //储存实例副本 【疑问之处】
$_self->lang = 'en'; //修改本例值
echo $_self->lang; //输出本例值 en
$_self_b = context::get('translateService'); //获取实例副本
echo $_self_b->lang; //居然输出的是本例的 en

疑问

set 函数没有使用引用类型,为什么修改本例,副本也会被修改,或者就是引用类型?
    public static function set(string $key, $value): void
    {
        $obj = static::getObject();
        $obj->$key = $value;
    }
168 1 0
1个回答

ontheway

php的对象传递的就是引用

  • speedy 2024-11-20

    是哦,拍大腿的忘了,以前还记得复制要使用clone,sorry大佬

×
🔝