【PHP8.x】TOSTRING_USE_KEY定数の使い方

TOSTRING_USE_KEY定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『TOSTRING_USE_KEY定数は、RecursiveCachingIteratorクラスのインスタンスが文字列に変換される際の挙動を指定するために使用される定数です。RecursiveCachingIteratorクラスは、オブジェクトを文字列として扱おうとした際に自動的に呼び出される __toString() メソッドを実装しています。この定数は、その __toString() メソッドが何を返すかを制御するためのフラグとして機能します。具体的に TOSTRING_USE_KEY を指定した場合、__toString() メソッドは、イテレータが現在指している要素のキーを文字列として返却します。この設定を行うには、RecursiveCachingIterator のコンストラクタの第2引数(flags)に RecursiveCachingIterator::TOSTRING_USE_KEY を渡します。このフラグを設定したインスタンスを echo 文などで直接出力しようとすると、現在の配列のインデックスやオブジェクトのプロパティ名といったキー情報が表示されます。デフォルトの挙動(TOSTRING_USE_CURRENT)では要素の値が返されるため、キーを文字列として直接扱いたい場合にこの定数が役立ちます。

構文(syntax)

1<?php
2
3$data = new RecursiveArrayIterator([
4    'first_key' => 'value1',
5    'second_key' => 'value2'
6]);
7
8$iterator = new RecursiveCachingIterator(
9    $data,
10    RecursiveCachingIterator::TOSTRING_USE_KEY
11);
12
13foreach ($iterator as $value) {
14    // $iteratorを文字列として評価すると、現在の要素のキーが返ります。
15    echo $iterator . PHP_EOL;
16}
17
18?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

RecursiveCachingIterator::TOSTRING_USE_KEYは、RecursiveCachingIterator::__toString()メソッドでキーを文字列として含めるかどうかを制御するための定数です。この定数の値は整数です。