我尝试更新session-Array中的值,但它不起作用。 初始设定:
$bag = new SessionBag('p-' . $productId);
$bag->person = ['name' => 'john', 'age' => 25];
然后更新:
$bag->person['age'] = 30;
之后年龄仍然是25岁(在xdebug会话中检查)。
答案 0 :(得分:1)
如果在Web服务器上启用警告/通知,您将看到类似“通知:间接修改过载属性”的内容。
如何实现你想要的目标?
$bag = new \Phalcon\Session\Bag('testest');
$bag->person = ['name' => 'john', 'age' => 25];
// $bag->person['age'] = 30; // Triggers Notice and will not work
$temp = $bag->person;
$temp['age'] = 44;
$bag->person = $temp;
print_r($bag);
[person] =>阵列( [name] =>约翰 [age] => 44)
如果您对此感兴趣,可以在此处阅读一些解释PHP - Indirect modification of overloaded property