【PHP8.x】unserializeメソッドの使い方

unserializeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『unserializeメソッドは、シリアライズされた文字列からRecursiveArrayIteratorオブジェクトを復元する処理を実行するメソッドです。シリアライズとは、オブジェクトや配列のような複雑なデータ構造を、ファイルへの保存やネットワーク経由での転送が可能な単一の文字列形式に変換する操作を指します。このunserializeメソッドは、その逆の処理、つまり文字列データから元のRecursiveArrayIteratorオブジェクトの状態を再構築する役割を担います。このメソッドは、プログラマがコード上で直接呼び出すことを意図したものではありません。PHPに標準で組み込まれているunserialize()関数が、RecursiveArrayIteratorオブジェクトのシリアライズデータを処理する際に、PHPエンジンによって内部的に呼び出されます。メソッドが実行されると、引数として渡された文字列データが解析され、イテレータが参照していた元の配列や、オブジェクトの動作を制御するために設定されていたフラグといった内部状態がすべて復元されます。これにより、シリアライズされる前と完全に同じように動作するRecursiveArrayIteratorインスタンスを再生成することが可能になります。

構文(syntax)

1<?php
2// 多次元配列を用意します
3$multiArray = [
4    'fruit' => 'apple',
5    'vegetable' => 'carrot',
6    'nested' => [
7        'drink' => 'tea',
8        'snack' => 'cookie'
9    ]
10];
11
12// RecursiveArrayIteratorオブジェクトを作成します
13$iterator = new RecursiveArrayIterator($multiArray);
14
15// serialize()関数でオブジェクトを文字列に変換します
16$serializedData = serialize($iterator);
17
18// unserialize()関数で文字列からオブジェクトを復元します
19// この処理の内部で RecursiveArrayIterator::unserialize() が呼び出されます
20$unserializedIterator = unserialize($serializedData);
21
22// 復元されたオブジェクトが正しく機能するか確認します
23var_dump($unserializedIterator->getArrayCopy());

引数(parameters)

string $data

  • string $data: デシリアライズするデータを含む文字列

戻り値(return)

戻り値なし

戻り値はありません

【PHP8.x】unserializeメソッドの使い方 | いっしー@Webエンジニア