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

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

作成日: 更新日:

基本的な使い方

isSameNodeメソッドは、DOMNodeオブジェクトが別のDOMNodeオブジェクトと物理的に同じノードであるかどうかを判定するために実行されるメソッドです。

このメソッドの主な目的は、比較対象となる2つのDOMノードが、メモリ上で全く同じオブジェクトインスタンスを指しているかどうかを確認することです。DOM(Document Object Model)を扱う際、見た目や内容が同じように見えるノードであっても、それぞれが異なるオブジェクトとして作成されている場合があります。isSameNodeメソッドは、そのような論理的な等価性ではなく、より厳密なオブジェクトの同一性を確認するために使用されます。

使用するには、比較したい別のDOMNodeオブジェクトを引数として渡します。もし現在のDOMNodeオブジェクトと引数で指定されたDOMNodeオブジェクトが、完全に同じインスタンスであれば、このメソッドは真を意味するtrueを返します。逆に、たとえ内容が同一であっても、別々のオブジェクトとして存在する場合は偽を意味するfalseを返します。

この機能は、DOMツリーの操作において、あるノードが本当に特定のノードを参照しているか、あるいは同じノードに再度アクセスしようとしているのかを確認する際に非常に役立ちます。例えば、ノードを移動させたり削除したりする際に、誤って別のノードに影響を与えないよう、厳密なチェックを行うことができます。PHPのオブジェクト比較における===(厳密等価演算子)と似た振る舞いをしますが、isSameNodeメソッドはDOMの文脈でのノードの同一性を保証するために特化しています。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$nodeA = $dom->createElement('example');
4$nodeB = $dom->createElement('example');
5
6$nodeA->isSameNode($nodeB);

引数(parameters)

?DOMNode $otherNode

  • ?DOMNode $otherNode: 比較対象となるDOMNodeオブジェクト。nullを指定するとfalseを返します。

戻り値(return)

bool

このメソッドは、比較対象のノードが現在のノードと同一のノードである場合に true を返します。それ以外の場合は false を返します。