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

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

作成日: 更新日:

基本的な使い方

isEqualNodeメソッドは、指定されたDom\Attrノードと現在のDom\Attrノードが、その型、名前、値、および名前空間URIにおいて等しいかどうかを比較するメソッドです。

このメソッドは、主に二つの属性ノードの内容が論理的に同じであるかを判断するために利用されます。比較の際、両方のノードがDom\Attr型であること、ノードの名前(nodeName)が一致すること、ノードの値(nodeValue)が一致すること、そして名前空間URI(namespaceURI)が一致することを検証します。例えば、異なる親要素に属していても、同じ名前と値を持つ二つの属性ノードであれば、このメソッドはtrueを返します。

重要な点として、この比較はノード自身の基本的な情報に限定されており、ノードの親、子、兄弟といった周囲の構造や、そのノードが属する要素の他の属性リストは比較の対象外となります。したがって、ノードの「同一性」ではなく「等価性」を判断します。

このメソッドは、厳密に同じオブジェクトインスタンスであるかをチェックするisSameNodeメソッドとは異なり、メモリ上の異なるオブジェクトであっても、その内容が同一であれば等しいと判断します。これにより、DOMツリーの操作において、内容が同じノードを効率的に特定する際に役立ちます。比較の結果、両ノードが等しいと判断された場合はtrueを、そうでない場合はfalseを返します。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$attr1 = $dom->createAttribute('id');
4$attr1->value = 'node1';
5
6$attr2 = $dom->createAttribute('id');
7$attr2->value = 'node1';
8
9$isEqual = $attr1->isEqualNode($attr2);
10?>

引数(parameters)

Dom\Node $otherNode

  • Dom\Node $otherNode: 比較対象のノードを指定するDom\Nodeオブジェクト

戻り値(return)

bool

このメソッドは、呼び出し元の Dom\Attr オブジェクトと、引数として渡されたもう一方の Dom\Attr オブジェクトが同じノードである場合に true を返します。それ以外の場合は false を返します。

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