作者sum90707 (破褲王)
看板PHP
標題Re: [請益] 序列化反序列化
時間Wed Nov 9 23:58:05 2016
※ 引述《sum90707 (破褲王)》之銘言:
: 各位大大最近小的在學程式上有些疑問
: 就是序列化跟反序列化
: 分開用我可以理解 就像是先整理收好 要用在拿出來還原
: 那像下面這種用法
: unserialize(serialize($A))
: 是什麼樣的概念有大大可以明示一下嗎?
那裡面的變數放$_SESSION 這又是什麼樣的概念@@ 有人能幫我解答嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.96.164
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1478707088.A.5B0.html
1F:→ MOONRAKER: 不然你的"概念"中"覺得"session是做什麼用的11/10 10:57
※ 編輯: sum90707 (61.230.8.189), 11/10/2016 21:40:48
2F:→ MOONRAKER: 你到底有改到什麼 11/10 21:44
3F:→ wilson200106: 是指 $_SESSION['A']=unserialize(serialize($A)) ? 11/11 13:09
4F:→ sum90707: $A = unserialize(serialize($_SESSION['A'])) 11/11 19:30
5F:→ sum90707: session不是暫時儲存資料用的嗎 11/11 19:30
6F:推 wilson200106: 這就只是把SESSION的資料拿出來過濾存到新變數呀@@ 11/11 20:19
7F:→ sum90707: 我是不懂為什麼要直接做一個正反 @@很好奇 而且網路上也 11/11 22:40
8F:→ sum90707: 沒什麼看到這種用法 ~~ 11/11 22:40
9F:→ MOONRAKER: 這個誰知道 你要實際看他變數內容 處理後又有什麼變化 11/12 02:25
10F:→ MOONRAKER: 有些撇步利用的效果不一定是有明確定義的 php版本一直 11/12 02:27
11F:→ MOONRAKER: 修改 有可能讓這些方法無效 那不學也罷 11/12 02:27
12F:推 GALINE: 我會建議把 code 貼到 gist 然後貼上來(如果沒有機敏問題 11/14 08:40
13F:→ GALINE: 不然這樣問還滿需要通靈能力的....(汗 11/14 08:41
14F:→ GALINE: 我一下想到幾個可能性: 11/14 08:43
15F:→ GALINE: - 想確保session不會被改到,但又要取用裡面的「物件」 11/14 08:43
16F:→ GALINE: - 寫 code 的人不會用 clone 11/14 08:43
17F:→ GALINE: - 上古時代某些奇怪的class相依性。這在官方文件的使用者 11/14 08:44
18F:→ GALINE: 註解裡面有看到,但一下沒搞懂這裡發生了什麼 11/14 08:45
19F:→ GALINE: - 有人只是想把 code 弄亂 11/14 08:45
20F:→ GALINE: - 那只是個練習用的範例,沒有實際意義 11/14 08:45
21F:→ GALINE: 沒看到 code 真的不知道是哪種情況... 11/14 08:46
22F:→ GALINE: 或者,最低限度,至少你知道這不是什麼天天會碰到的手法.. 11/14 08:47
23F:推 GALINE: 阿,熊熊忘記剛剛試了才想起來, clone 只能複製物件 11/14 08:50
24F:→ GALINE: 所以複製 array 可以用這招...雖然序列化/反序列化有點慢 11/14 08:51
25F:→ GALINE: 但是 request 量不大(一秒幾十幾百次之類)的話可以用 11/14 08:52
26F:→ GALINE: 這是在陣列裡面有物件,又要複製整個陣列時才需要這麼搞 11/14 09:07
27F:→ GALINE: 如果陣列裡面都是字串數字之類的,用 $a = $b 就是複製了 11/14 09:08
28F:→ sum90707: 感謝 我好像有點明白了~ 11/15 14:49