doubi4435 2017-06-02 10:42
浏览 40

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

I'm trying to update a value in session-Array, but it doesn't work. Initial set:

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

Then update:

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

After that the age is still 25 (checked in a xdebug-session).

  • 写回答

1条回答 默认 最新

  • drzil26260 2017-06-02 11:05
    关注

    If you enable warnings/notices on your web server, you will see something like "Notice: Indirect modification of overloaded property".

    How to accomplish what you want?

    $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] => Array ( [name] => john [age] => 44 )

    If you are interested why this happens, you can read few explanations here PHP - Indirect modification of overloaded property

    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么