PHP オブジェクト指向ガイド (16) オブジェクトのシリアル化
オブジェクトのシリアル化
送信を容易にするために、オブジェクト全体をバイナリ文字列に変換する必要がある場合があります。
相手に到達したときに、オブジェクトを復元できます。このプロセスは、車を船で米国に輸送するのと同じように、シリアル化と呼ばれます。車は比較的大きいため、車を小さな部品に分解してから米国に輸送します。ホイールごとに状態を整え、部品を組み立てて車に戻します。
オブジェクトをシリアル化する必要があるケースは 2 つあります。1 つ目のケースは、オブジェクトをネットワーク経由で送信するときにオブジェクトをシリアル化することです。2 つ目のケースは、オブジェクトをファイルに書き込むか、オブジェクトをシリアル化するときに使用します。データベース。
シリアル化には 2 つのプロセスがあります。1 つはオブジェクトをバイナリ文字列に変換するシリアル化であり、もう 1 つはオブジェクトをシリアル化する逆シリアル化です。オブジェクトからオブジェクトに変換されたバイナリ文字列を変換します。オブジェクトを逆シリアル化するには unserialize() 関数を使用します。
PHP の Serialize() 関数のパラメータはオブジェクト名であり、戻り値は文字列です。Serialize() によって返される文字列
は、一般に、この文字列を解析して取得することはありません。必要なのは、返された文字列
をネットワークの反対側に渡すか、ウィジェットに保存することだけです。
PHP の unserialize() 関数は、オブジェクトを逆シリアル化するために使用されます。
出力はもちろん、再編成されたオブジェクトです。コード スニペット
コードをコピー
コードは次のとおりです: <class Person{
/? /以下は人のメンバー属性ですvar $name; //人の名前
var $sex; //人の年齢
//構築方法を定義しますパラメータには属性 name $name、性別 $sex、年齢 $age が割り当てられます。
function __construct($name="", $sex="", $age=""){
$this->name = $name;
$this->sex=$sex;
$this->age=$age;
}
//この人の話し方、自分の属性を伝える
function Say() {
echo "私の名前は: ".$this->name." 性別: ".$this->性別" 私の年齢: ".$this->age ."
";
}
}
$p1=new person("张三", "男", 20);
$p1_string=serialize( $p1); /オブジェクトをシリアル化して文字列を返します
echo $p1_string."
" //通常はシリアル化された文字列を解析しません
$p2= unserialize($p1_string) //シリアル化された文字列を逆シリアル化します。オブジェクト $p2
$p2->say();
?>上記の例の出力結果:
コード スニペット
O:6: "人物":3:{s:4:"名前";s:4:"張三";s:3:"性別"; s:2:"男性";s:3:"年齢";i: 20;}
私の名前: Zhang San 性別: 男性 私の年齢: 20
php5 には 2 つあります。マジック メソッド __sleep() メソッドと __wakeup() メソッドは、オブジェクトがシリアル化されるときに < を呼び出します。 🎜> 就寝前にいくつかの作業を完了するための __sleep() メソッド。また目覚めるときに、つまりバイナリによって文字列がオブジェクト
に再結合されると、PHP の別の関数 __wakeup() が実行されます。オブジェクトが起動したときに実行する必要があるいくつかのアクションを実行するために、自動的に呼び出されます。
__sleep() 関数はパラメーターを受け入れませんが、シリアル化する必要があるプロパティを含む配列を返します。
コード スニペット
コードをコピー
コードは次のとおりです:
<
class Person{ 🎜>/ /以下は人物のメンバー属性です
var $name; //人物の名前var $sex //人物の性別var $age;人の年齢//定義 コンストラクター パラメーターは属性名 $name、性別 $sex および年齢 $age function __construct($name="", $sex="", $age) に割り当てられます。 =""){
$this->name=$name;$this->gt;年齢=$年齢;
>//この人の話し方は、自分の属性関数を公開するsay()
{
echo "My name is: ".$this->name." Gender: ".$this-> ;sex." My age is: ".$this->age."
"
}
//シリアル化を指定する場合、$name と $age の値をシリアル化します。 $sex
function __sleep() {
$arr=array("name", "age");
return($arr); の配列にない属性は無視して返された配列>}
//オブジェクトを再生成し、$age を 40 に再割り当てします。
function __wakeup() {
$this->age = 40;
}
}
$ p1=new Person("Zhang San" , " Male", 20); // オブジェクトをシリアル化し、文字列を返し、 __sleep() メソッドを呼び出し、配列にない属性を無視します $sex
$ p1_string=serialize( $p1);
echo $p1_string."
"; //通常はシリアル化された文字列を解析しません
$p2=unserialize($p1_string) //逆シリアル化の形成オブジェクト $p2 $age を 40
$p2->say()>
に再割り当てします。
上記の例の出力値は次のとおりです:
実行結果
O:6:"person":2:{s:4:"name";s:4:"Zhang San";s: 3:" age";i:20;}
私の名前: Zhang San 性別: 私の年齢: 40

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
