二十一.php very nice
php又是你?,但是經過這么多次折磨后我感覺我已經有一點抗性了
老規矩,先看知識點
PHP 序列化
是將 PHP 變量(如對象、數組)轉換為字符串的過程,便于存儲或傳輸。反序列化則是將字符串還原為原始變量。這在緩存、會話管理、RPC(遠程過程調用)等場景中廣泛應用。
PHP 序列化的核心函數
1.?
serialize(mixed $value): string
將變量轉換為可存儲或傳輸的字符串格式。
2.?
unserialize(string $serialized): mixed
將序列化字符串還原為原始變量。
PHP 序列化字符串的基本結構:
類型:長度:值;
常見類型標識
類型 標識 示例 字符串 s
s:5:"hello";
整數 i
i:42;
浮點數 d
d:3.14;
布爾值 b
b:1;
(true)或?b:0;
(false)空值 N
N;
數組 a
a:2:{i:0;s:5:"apple";i:1;s:6:"banana";}
對象 O
O:4:"User":2:{s:4:"name";s:5:"Alice";s:3:"age";i:30;}
在這道題中unserialize($_GET['a'])
程序接收 URL 參數?a
(用戶可控的序列化字符串),并對其反序列化。
在你提供的代碼中,__destruct()
?是 PHP 的一個魔術方法,當對象被銷毀時會自動調用。具體來說,這個方法在以下幾種情況下會被觸發:
- 腳本執行完畢時,所有對象都會被銷毀。
- 使用?
unset()
?函數手動銷毀對象。 - 對象被賦值為其他值,原對象的引用被覆蓋。
Day7:
今天頭暈,明天再補
?
?