首頁 >後端開發 >php教程 >php序列化函數與原生序列化函數對比

php序列化函數與原生序列化函數對比

墨辰丷
墨辰丷原創
2018-06-11 10:09:562182瀏覽

這篇文章主要介紹了php序列化函數serialize() 和 unserialize() 與php原生序列化函數對比,有需要的小夥伴可以參考下。

php中有格式化字串並轉換成陣列或物件的好方法,即序列化處理。
有兩種序列化變數的方法。

以下範例,使用 serialize() 和 unserialize() 函數:

// a complex array
$myvar = array(
 'hello',
 42,
 array(1,'two'),
 'apple'
);

// convert to a string
$string = serialize($myvar);

echo $string;
/* prints
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/

// you can reproduce the original variable
$newvar = unserialize($string);

print_r($newvar);
/* prints
Array
(
  [0] => hello
  [1] => 42
  [2] => Array
    (
      [0] => 1
      [1] => two
    )

  [3] => apple
)
*/

這是原生的 PHP 序列化方法。

然而,由於 JSON 近年來大受歡迎,PHP5.2 中已經加入了對 JSON 格式的支援。

現在你可以使用 json_encode() 和 json_decode() 函數:

// a complex array
$myvar = array(
 'hello',
 42,
 array(1,'two'),
 'apple'
);

// convert to a string
$string = json_encode($myvar);

echo $string;
/* prints
["hello",42,[1,"two"],"apple"]
*/

// you can reproduce the original variable
$newvar = json_decode($string);

print_r($newvar);
/* prints
Array
(
  [0] => hello
  [1] => 42
  [2] => Array
    (
      [0] => 1
      [1] => two
    )

  [3] => apple
)
*/

這將更為行之有效,尤其與 JavaScript 等許多其他語言相容。

注意:對於複雜的對象,某些資訊可能會遺失。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHP實作基本的資料庫連線、執行SQL語句、錯誤提示

##php正規比對與陣列遍歷

php資料庫查詢及密碼相符的功能

以上是php序列化函數與原生序列化函數對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn