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

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

作成日: 更新日:

基本的な使い方

getIteratorメソッドは、Dom\NamedNodeMapクラスに属し、そのマップ内に含まれるすべてのノード(属性)を順番に処理するための反復子(イテレーター)オブジェクトを返すメソッドです。Dom\NamedNodeMapは、XMLやHTMLドキュメントにおける要素が持つ属性の集合を表すものです。例えば、HTMLの<img>タグが持つsrcaltといった属性は、このDom\NamedNodeMapに格納されています。

このメソッドが返すイテレーターオブジェクトを利用することで、開発者はDom\NamedNodeMapに登録されている個々の属性を、例えばPHPのforeachループなどを用いて一つずつ簡単に取り出し、アクセスできるようになります。これにより、要素のすべての属性を走査して名前や値を取得したり、特定の条件に合致する属性を探したりといった操作を、統一的かつ効率的な方法で実現できます。この機能は、DOMツリーをプログラムで操作し、要素の属性に関する情報を抽出したり変更したりする際に非常に役立ちます。

構文(syntax)

1<?php
2
3$dom = new DOMDocument();
4$element = $dom->createElement('item');
5$element->setAttribute('id', 'unique-id-1');
6$element->setAttribute('class', 'main-item');
7$dom->appendChild($element);
8
9$attributes = $element->attributes; // Dom\NamedNodeMap のインスタンス
10
11foreach ($attributes->getIterator() as $name => $node) {
12    // $name は属性名 (例: 'id', 'class')
13    // $node は Dom\Attr オブジェクト (例: id="unique-id-1")
14}

引数(parameters)

引数なし

引数はありません

戻り値(return)

Iterator

Dom\NamedNodeMap::getIterator は、Dom\NamedNodeMap オブジェクトが持つノードのコレクションを順にたどるためのイテレータを返します。これにより、各ノードに順番にアクセスできるようになります。

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