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

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

作成日: 更新日:

基本的な使い方

『__serializeメソッドは、RecursiveArrayIteratorオブジェクトをシリアライズする際に、その状態を配列として表現するために実行するメソッドです。シリアライズとは、オブジェクトを後で復元できるように、保存や転送が可能な文字列形式に変換する処理を指します。このメソッドは、serialize()関数がRecursiveArrayIteratorオブジェクトに対して呼び出された際に、PHPによって自動的に実行されるマジックメソッドの一つです。その主な役割は、オブジェクトが内部に保持している重要なデータ、例えばイテレーション対象の配列やイテレータの振る舞いを制御するフラグなどを、キーと値のペアからなる連想配列として返すことです。この返された連想配列が、最終的にシリアライズされた文字列の元データとなります。そして、このシリアライズされたデータからオブジェクトを復元する際には、対となる__unserializeメソッドがこの連想配列を受け取り、オブジェクトの状態を元通りに再構築します。このように、__serializeはオブジェクトの永続化において重要な役割を担います。

構文(syntax)

1<?php
2
3$array = [
4    'id' => 123,
5    'data' => [
6        'item1',
7        'item2'
8    ]
9];
10
11$iterator = new RecursiveArrayIterator($array);
12
13// The serialize() function internally calls the __serialize() method of the object.
14$serializedString = serialize($iterator);

引数(parameters)

引数なし

引数はありません

戻り値(return)

array

RecursiveArrayIterator クラスの __serialize メソッドは、オブジェクトの状態をシリアライズ可能な形式で表現した配列を返します。この配列には、イテレータの現在の状態などが含まれます。