請問為什麼session()->push()的結果是堆疊而不是取代

使用laravel 9.x,使用php 8.2
提問:
請問為什麼session()->push()的結果是堆疊而不是取代?
簡單測試:
我使用session()->push(‘user.id’,rand(1, 100));
然後察看dd(session()->get(‘user.id’));
array:1 [ 0 => "38"]

在重新跑一次網頁,然後察看dd(session()->get(‘user.id’));
array:2 [ 0 => "38",1 => "48"]

在重新跑一次網頁,然後察看dd(session()->get(‘user.id’));
array:3 [ 0 => "38",1 => "48",2 => "66"]

請問為什麼結果是堆疊而不是取代? 我想要的結果是user.id是取代性值。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

用set方法吧

1年前 评论
rfrkk (楼主) 1年前
deatil (作者) 1年前
讨论数量: 7

花一分钟看下文档的事,又是测试又是提问的,push 就应该是这么用的, js: arr.push();arr.pop(); php: array_push();array_pop(); redis:Redis::RPUSH();:Redis::RPOP()

1年前 评论

put 设置键值对,push 将新值存入数组

session()->put('key', 'value');
1年前 评论

用set方法吧

1年前 评论
rfrkk (楼主) 1年前
deatil (作者) 1年前

使用putpush专门用来存储数组

1年前 评论

可以翻看下源码, 没有修改过驱动的话,session驱动默认是file。 put,push 方法实际上都是调用的Illuminate\Session\Store 这个类下的方法 。方法注释都很明确。 而且普遍的编程习惯都是push 追加入栈(可能是我看的少)

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!