ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、serialize() と unserialize() を使用してオブジェクトをスーパー変数にします
PHP は、serialize() と unserialize() を使用してオブジェクトをスーパー変数にします
マニュアル内の原文と要約:
PHP関数のserialize()とunserialize()の解説と事例。シリアル化された文字列を PHP 値に変換するには、unserialize() を使用します。 Serialize() はリソース以外の任意の型を処理できます。それ自体への参照を含む配列を Serialize() することもできます。 Serialize() している配列/オブジェクト内の参照も保存されます。
serialize() は文字列を返します。この文字列には値を表すバイト ストリームが含まれており、どこにでも保存できます。これにより、型や構造を失うことなく、PHP 値の保存や受け渡しが容易になります。
シリアル化された文字列を PHP 値に戻したい場合は、unserialize() を使用できます。 Serialize() はリソース以外の任意の型を処理できます。それ自体への参照を含む配列を Serialize() することもできます。 Serialize() している配列/オブジェクト内の参照も保存されます。
オブジェクトをシリアル化するとき、PHP はシーケンス アクションの前にオブジェクトのメンバー関数 __sleep() の呼び出しを試みます。これにより、オブジェクトがシリアル化される前にクリーンアップ操作を実行できるようになります。同様に、unserialize() を使用してオブジェクトを復元する場合、__wakeup() メンバー関数が呼び出されます。
注: PHP 3 では、オブジェクトのプロパティはシリアル化されますが、メソッドは失われます。 PHP 4 ではこの制限がなくなり、プロパティとメソッドの両方を保存できるようになりました。詳細については、「クラスとオブジェクト」の「シリアル化されたオブジェクト」セクションを参照してください。
PHP マニュアルでの Serialize() と unserialize() の説明は次のとおりです。
serialize ― 値の保存可能な表現を生成します
シリアル化 — 値の保存可能な表現を生成します
unserialize ― 保存された表現から PHP 値を作成します
unserialize ― 格納された表現から PHP 値を作成します
serialize、「シリアル化、連続化」と訳され、通常は「シリアル化」
と呼ばれますこの関数は、特に unserialize と一緒に使用すると非常に便利です
データをデータベースに保存する場合やファイルに記録する場合の方が便利だと思います
もちろん、この種のデータは比較的複雑でなければなりません (複雑ではなく、シリアル化する必要はありません。少なくとも配列でなければならないと思います)。また、「インデックスまたは主キー」以外のものでなければなりません。もちろん、このデータベース フィールドはデータベース内にあることが最適です。もちろん、特定のデータは暗号化または変更されていないため、システムは検索プログラムとは何の関係もありません。 🎜>
CPersonal.php
<?php class Person { public $age; function __construct($age) { $this->age=$age; } function walk() { echo "I'm walking...!"; } } ?>test0.php はここにオブジェクトを保存します
<?php session_start(); include_once './CPerson.php'; $person=new Person(22); $b=serialize($person); $_SESSION["object"]=$b; ?>test1.php アクセス オブジェクト
<?php session_start(); include_once './CPerson.php'; $p=$_SESSION['object']; $a=unserialize($p); $a->walk(); echo $a->age; ?>