請問為什麼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是取代性值。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

用set方法吧

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

用set方法吧

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

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

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

使用putpush专门用来存储数组

1年前 评论

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

1年前 评论

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

1年前 评论

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