Phalcon:无法在会话中更新数组中的值

时间:2017-06-02 10:42:05

标签: php arrays session session-variables phalcon

我尝试更新session-Array中的值,但它不起作用。 初始设定:

$bag = new SessionBag('p-' . $productId);
$bag->person = ['name' => 'john', 'age' => 25];

然后更新:

$bag->person['age'] = 30;

之后年龄仍然是25岁(在xdebug会话中检查)。

1 个答案:

答案 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