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

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

作成日: 更新日:

基本的な使い方

isSameNodeメソッドは、PHPのDOM拡張機能に属し、DOMDocumentクラスのインスタンスを含むDOMノードを比較する際に使用され、指定された二つのDOMノードが、メモリ上で同一のオブジェクトインスタンスであるかを厳密に比較し、その結果を真偽値で返すメソッドです。

このメソッドは、DOMNodeクラスで定義されており、DOMDocumentクラスをはじめとする、HTMLやXMLドキュメントの要素、属性、テキストなどの各部品(ノード)を扱うDOMオブジェクトのインスタンスから呼び出せます。これは、ノードの見た目や内容が一致するかどうかではなく、プログラム上で「全く同じ実体として扱われているか」を厳密に判別するために用いられます。

例えば、ある変数に格納されたDOMノードと、別の変数に格納されたDOMノードが、実際にドキュメントツリー内の同じ位置にある、同一のオブジェクトであるかを検証したい場合に非常に役立ちます。たとえ内容が完全に一致していても、メモリ上の異なるインスタンス(例えば、ノードのコピー)であれば、このメソッドはfalseを返します。この機能は、DOMツリーの走査や、ノードの追加、削除、変更といった操作を行う際に、意図しない重複や誤った参照を防ぎ、正確なノード比較に不可欠な機能です。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$dom->loadXML('<root><element id="a"/><element id="b"/></root>');
4
5$nodeA = $dom->getElementById('a');
6$nodeA_reference = $dom->getElementById('a');
7$nodeB = $dom->getElementById('b');
8
9$is_nodeA_and_nodeA_reference_same = $nodeA->isSameNode($nodeA_reference);
10$is_nodeA_and_nodeB_same = $nodeA->isSameNode($nodeB);
11?>

引数(parameters)

DOMNode $otherNode

  • DOMNode $otherNode: 比較対象となる別のDOMNodeオブジェクト

戻り値(return)

bool

指定されたDOMNodeオブジェクトが、このDOMNodeオブジェクトと同一のノードである場合にtrueを、そうでない場合にfalseを返します。

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