Re: [請益] 序列化反序列化

看板PHP作者 (破褲王)時間8年前 (2016/11/09 23:58), 8年前編輯推噓3(3025)
留言28則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《sum90707 (破褲王)》之銘言: : 各位大大最近小的在學程式上有些疑問 : 就是序列化跟反序列化 : 分開用我可以理解 就像是先整理收好 要用在拿出來還原 : 那像下面這種用法 : unserialize(serialize($A)) : 是什麼樣的概念有大大可以明示一下嗎? 那裡面的變數放$_SESSION 這又是什麼樣的概念@@ 有人能幫我解答嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.96.164 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1478707088.A.5B0.html

11/10 10:57, , 1F
不然你的"概念"中"覺得"session是做什麼用的
11/10 10:57, 1F
※ 編輯: sum90707 (61.230.8.189), 11/10/2016 21:40:48

11/10 21:44, , 2F
你到底有改到什麼
11/10 21:44, 2F

11/11 13:09, , 3F
是指 $_SESSION['A']=unserialize(serialize($A)) ?
11/11 13:09, 3F

11/11 19:30, , 4F
$A = unserialize(serialize($_SESSION['A']))
11/11 19:30, 4F

11/11 19:30, , 5F
session不是暫時儲存資料用的嗎
11/11 19:30, 5F

11/11 20:19, , 6F
這就只是把SESSION的資料拿出來過濾存到新變數呀@@
11/11 20:19, 6F

11/11 22:40, , 7F
我是不懂為什麼要直接做一個正反 @@很好奇 而且網路上也
11/11 22:40, 7F

11/11 22:40, , 8F
沒什麼看到這種用法 ~~
11/11 22:40, 8F

11/12 02:25, , 9F
這個誰知道 你要實際看他變數內容 處理後又有什麼變化
11/12 02:25, 9F

11/12 02:27, , 10F
有些撇步利用的效果不一定是有明確定義的 php版本一直
11/12 02:27, 10F

11/12 02:27, , 11F
修改 有可能讓這些方法無效 那不學也罷
11/12 02:27, 11F

11/14 08:40, , 12F
我會建議把 code 貼到 gist 然後貼上來(如果沒有機敏問題
11/14 08:40, 12F

11/14 08:41, , 13F
不然這樣問還滿需要通靈能力的....(汗
11/14 08:41, 13F

11/14 08:43, , 14F
我一下想到幾個可能性:
11/14 08:43, 14F

11/14 08:43, , 15F
- 想確保session不會被改到,但又要取用裡面的「物件」
11/14 08:43, 15F

11/14 08:43, , 16F
- 寫 code 的人不會用 clone
11/14 08:43, 16F

11/14 08:44, , 17F
- 上古時代某些奇怪的class相依性。這在官方文件的使用者
11/14 08:44, 17F

11/14 08:45, , 18F
註解裡面有看到,但一下沒搞懂這裡發生了什麼
11/14 08:45, 18F

11/14 08:45, , 19F
- 有人只是想把 code 弄亂
11/14 08:45, 19F

11/14 08:45, , 20F
- 那只是個練習用的範例,沒有實際意義
11/14 08:45, 20F

11/14 08:46, , 21F
沒看到 code 真的不知道是哪種情況...
11/14 08:46, 21F

11/14 08:47, , 22F
或者,最低限度,至少你知道這不是什麼天天會碰到的手法..
11/14 08:47, 22F

11/14 08:50, , 23F
阿,熊熊忘記剛剛試了才想起來, clone 只能複製物件
11/14 08:50, 23F

11/14 08:51, , 24F
所以複製 array 可以用這招...雖然序列化/反序列化有點慢
11/14 08:51, 24F

11/14 08:52, , 25F
但是 request 量不大(一秒幾十幾百次之類)的話可以用
11/14 08:52, 25F

11/14 09:07, , 26F
這是在陣列裡面有物件,又要複製整個陣列時才需要這麼搞
11/14 09:07, 26F

11/14 09:08, , 27F
如果陣列裡面都是字串數字之類的,用 $a = $b 就是複製了
11/14 09:08, 27F

11/15 14:49, , 28F
感謝 我好像有點明白了~
11/15 14:49, 28F
文章代碼(AID): #1O8qUGMm (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1O8qUGMm (PHP)