ホームページ  >  記事  >  バックエンド開発  >  PHPのシリアル化関数の違い

PHPのシリアル化関数の違い

王林
王林オリジナル
2019-09-16 17:54:092006ブラウズ

PHPのシリアル化関数の違い

serialize() //把变量和它们的值编码成文本形式,即产生一个可存储的值的表示

詳細な説明:

##serialize() 文字列を返します。この文字列には A が含まれます値を表すバイト ストリーム。どこにでも保存できます。これにより、型や構造を失うことなく、PHP 値の保存や受け渡しが容易になります。

unserialize() //恢复原先变量。

詳細な説明:

unserialize() 単一のシリアル化変数を操作して変換し、値を返します。 PHP。渡された文字列が逆シリアル化できない場合は、FALSE を返し、 E_NOTICE を生成します。

$arr=array();
$arr['name']='张三';
$arr['age']='22';
$arr['sex']='男';
$arr['phone']='123456789';
$arr['address']='上海市浦东新区';
var_dump($arr);

//输出:
//  array(5) { 
//  ["name"]=> string(6) "张三"
//  ["age"]=> string(2) "22"
//  ["sex"]=> string(3) "男"
//  ["phone"]=> string(9) "123456789"
//  ["address"]=> string(21) "上海市浦东新区"
//   }

//序列化:
$info=serialize($arr);
var_dump($info);

//输出:
//string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}"

   ////////////////////////说明/////////////////////////////////
//**a:5标志序列化为array包含5个键值对,s:4标志内容为字符串包含4个字符。**//


$zhangsan=unserialize($info);
var_dump($zhangsan);

//输出:
//  array(5) { 
//  ["name"]=> string(6) "张三"
//  ["age"]=> string(2) "22"
//  ["sex"]=> string(3) "男"
//  ["phone"]=> string(9) "123456789"
//  ["address"]=> string(21) "上海市浦东新区"
//   }

シリアル化された文字列を PHP 値に戻したい場合は、unserialize() を使用できます。 Serialize() はリソース以外の任意の型を処理できます。それ自体への参照を含む配列を Serialize() することもできます。 Serialize() している配列/オブジェクト内の参照も保存されます。

オブジェクトをシリアル化するとき、PHP はシーケンス アクションの前にオブジェクトのメンバー関数 __sleep() の呼び出しを試みます。これにより、オブジェクトがシリアル化される前にクリーンアップ操作を実行できるようになります。同様に、unserialize() を使用してオブジェクトが復元されると、__wakeup() メンバー関数が呼び出されます。

上記の内容は参考用です。

推奨チュートリアル:

PHP ビデオ チュートリアル

以上がPHPのシリアル化関数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。