ホームページ >バックエンド開発 >PHPの問題 >PHPで配列とオブジェクトを逆シリアル化する方法

PHPで配列とオブジェクトを逆シリアル化する方法

醉折花枝作酒筹
醉折花枝作酒筹オリジナル
2021-08-06 10:33:222743ブラウズ

前回の記事ではオブジェクトや配列をシリアル化する方法について学びましたので、必要な方は「phpで配列やオブジェクトをシリアル化する方法」を読んでください。今回はオブジェクトや配列をデシリアライズする方法を紹介しますので、必要に応じて参考にしてください。

この記事を始める前に、まず逆シリアル化とは何かを理解しましょう。

逆シリアル化は、バイト ストリーム (バイナリ文字列) を配列とオブジェクトに復元するプロセスです。

逆シリアル化の意味を理解すると、この記事で何をする必要があるのか​​を簡単に理解できます。前の記事でシリアル化されたオブジェクトと配列を復元する必要があります。

まず、前の記事でシリアル化された配列を復元する小さな例を見てみましょう。

前の記事の例は

<?php    
$sites = array(&#39;Google&#39;, &#39;360&#39;, &#39;Facebook&#39;);    
$serialized_data = serialize($sites);    
echo  $serialized_data . PHP_EOL;  
?>

結果は

PHPで配列とオブジェクトを逆シリアル化する方法

次に、このバイト ストリームを配列に復元します。

<?php
$str = &#39;a:3:{i:0;s:6:"Google";i:1;s:3:"360";i:2;s:8:"Facebook";}&#39;;
$unserialized_data = unserialize($str);
print_r($unserialized_data);
?>

復元された結果は

PHPで配列とオブジェクトを逆シリアル化する方法

わかりました。結果を復元しましょう。丁寧に説明すると、このような長い文字列は関数を渡すと配列になります。この長い一連の流れの中で何が起こったのかはわかりませんが?数字と文字の長い文字列から、私たちがよく知っている配列にどのように変化したのか。

しかし、この関数を学ぶことができます。

unserialize() 関数は、serialize() 関数によってシリアル化されたオブジェクトまたは配列を逆シリアル化し、元のオブジェクト構造を返すために使用されます。

それでは、この関数の構文構造を見てみましょう。

mixed unserialize (需要进行反序列化操作的字符串)

注目すべきはこの関数の戻り値です。詳しく見てみましょう。

この関数は、変換された値を返します。これは、integerfloatstringarray、または ## です。 #物体###。渡された文字列が逆シリアル化できない場合は、FALSE が返され、E_NOTICE が生成されます。 以上です。他に知りたいことがある場合は、ここをクリックしてください。 → →

phpビデオチュートリアル

以上がPHPで配列とオブジェクトを逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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