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

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

作成日: 更新日:

基本的な使い方

『__toStringメソッドは、CachingIteratorオブジェクトが文字列として扱われた際に、イテレーションにおける現在の要素を文字列形式で返す処理を実行するメソッドです。これはPHPにおけるマジックメソッドの一つであり、echo構文でオブジェクトを直接出力したり、文字列と連結したりする際に自動的に呼び出されます。このメソッドの内部では、CachingIteratorがラップしているイテレータのcurrent()メソッドが呼び出され、その返り値が文字列として返却されます。例えば、イテレータが配列の先頭要素を指している状態でオブジェクトを文字列として評価すると、その先頭要素の値が表示されます。next()メソッドでイテレーションを一つ進めると、次にこのメソッドが返す値は次の要素の値に変わります。もしイテレータが有効な要素を指していない場合、例えばイテレーションが終了した後などでは、このメソッドは空の文字列を返します。これにより、オブジェクトの現在の状態を文字列として手軽に確認できます。

構文(syntax)

1<?php
2
3// 元になる配列データを作成します。
4$data = new ArrayIterator(['First', 'Second', 'Third']);
5
6// ArrayIteratorをCachingIteratorでラップします。
7$iterator = new CachingIterator($data);
8
9// イテレータをループ処理します。
10foreach ($iterator as $value) {
11    // CachingIteratorオブジェクトを文字列として出力すると、
12    // __toString() メソッドが自動的に呼び出され、
13    // 現在の要素 ('First', 'Second', 'Third') が文字列として返されます。
14    echo $iterator . PHP_EOL;
15}
16
17?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

CachingIterator::__toStringメソッドは、CachingIteratorオブジェクトの現在の状態を文字列として返します。