ホームページ  >  記事  >  バックエンド開発  >  PHP関数serialize()とunserialize()の使用例、sprintf関数の使い方_PHPチュートリアル

PHP関数serialize()とunserialize()の使用例、sprintf関数の使い方_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:14:571020ブラウズ

PHP関数serialize()とunserialize()の使用例、sprintf関数の使用例

この記事の例では、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 と一緒に使用すると非常に便利です
データをデータベースに保存する場合やファイルに記録する場合の方が便利だと思います
もちろん、この種のデータは比較的複雑である必要があり (複雑ではなく、シリアル化する必要はありません。少なくとも配列でなければならないと思います)、データベース内の「インデックスまたは主キー」ではない必要があります。もちろん、このデータベースフィールドはシステム内にあることが最善であり、検索プログラムとは何の関係もありません。もちろん、特定のデータは暗号化または変更されていないため、シリアル化後のデータも検索できます

コードをコピーします コードは次のとおりです:
//よりシンプル
$array = array();
$array['key'] = 'ウェブサイト';
$array['value']='www.isoji.org';
$a = シリアル化($array);
エコー $a;
unset($array);
$a = アンシリアル化($a);
print_r($a);

//クラスを宣言する
クラスの犬{
var $name;
var $age;
var $owner;
function Dog($in_name="unnamed",$in_age="0",$in_owner="unknown") {
$this->name = $in_name;
$this->年齢 = $in_age;
$this->owner = $in_owner;
}
関数 getage() {
return ($this->age * 365);
}

関数 getowner() {
return ($this->owner);
}

関数 getname() {
return ($this->name);
}
}
//このクラスをインスタンス化します
$ourfirstdog = 新しい犬("ローバー",12,"リサとグラハム");
//serialize 関数を使用して、このインスタンスをシリアル化された文字列に変換します
$dogdisc = シリアル化($ourfirstdog);
print $dogdisc; //$ourfirstdog は文字列 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i にシリアル化されました:12;s:5:"オーナー";s:15:"リサとグラハム";}
print '
';
/*
ここで文字列 $dogdisc をセッション、クッキー、データベース、PHP ファイルなどの任意の場所に保存できます
*/
//ここでこのクラスの登録を解除します
unset($ourfirstdog);
/* 復元操作 */
/*
ここで、セッション、Cookie、データベース、PHP ファイルなど、保存場所から文字列 $dogdisc を読み取ります
*/

//ここでは unserialize() を使用してシリアル化されたオブジェクトを復元します
$pet = unserialize($dogdisc); //この時点の $pet はすでに前の $ourfirstdog オブジェクトです
//年齢と名前の属性を取得します
$old = $pet->getage();
$name = $pet->getname();
//このクラスは現時点ではインスタンス化せずに使い続けることができ、属性や値はシリアル化前の状態が維持されます
print "私たちの最初の犬は $name と呼ばれ、$old days です
";
print '
';
?>

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

PHP変数をシリアル化および逆シリアル化する関数を作成し、アプリケーション例を示します

";print_r(unserialize ($new));?>serialize() 変数とその値をテキスト形式にエンコード
unserialize() 元の変数を復元

phpのserialize()メソッドとunserialize()メソッドについてご質問はありますか?

$person1 = new ysr(25, 'yuanshao');
$person1 はオブジェクトです。シリアル化したら、別の表現方法に変更するだけです。
$person2 = unserialize($listInfo);
このオブジェクトを復元すると、オブジェクトになります。
このオブジェクトには元々 getAge() と getName()
オペレーション メソッドがあり、これらのメソッドを使用できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/907285.html技術記事 php関数のserialize()とunserialize()の使用例、sprintf関数の使い方 この記事ではphp関数のserialize()とunserialize()の使い方について説明します。参考のためにみんなで共有してください。具体的な方法...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。