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

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

作成日: 更新日:

基本的な使い方

isSameNodeメソッドは、指定されたノードが現在のノードと全く同じオブジェクトインスタンスであるかを確認するメソッドです。 このメソッドは、PHPのDOM拡張機能の一部であり、XMLやHTMLなどのドキュメントの構造をプログラムで操作するために使用されるDOMCdataSectionクラスに属しています。 DOMCdataSectionは、XMLドキュメント内で特殊な文字をエスケープせずに記述できるCDATAセクションという部分を表すノードです。

isSameNodeメソッドは、比較したい別のDOMノードを引数として受け取ります。 もし引数として渡されたノードが、このメソッドを呼び出した現在のDOMCdataSectionオブジェクトとメモリ上で同じオブジェクトインスタンスを参照している場合、true(真)を返します。 そうでなければ、false(偽)を返します。

このメソッドは、ノードの内容や属性が同じであるかどうかではなく、完全に同一のオブジェクトであるかどうかを厳密に判定したい場合に役立ちます。 例えば、同じドキュメントから取得された複数のノード参照が、実は同じ一つのノードを指しているのかどうかを確認する際などに利用されます。 システムエンジニアを目指す初心者の方は、DOMがXMLやHTMLの文書構造をオブジェクトとして表現し、プログラムからその内容や構造を操作するための仕組みであると理解しておくと良いでしょう。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$cdata1 = $dom->createCDATASection('data content 1');
4$cdata2 = $dom->createCDATASection('data content 2');
5$cdata3 = $cdata1; // $cdata1と同じDOMCdataSectionオブジェクトを参照
6
7// $cdata1と$cdata2は異なるノードであるため、falseを返す
8var_dump($cdata1->isSameNode($cdata2));
9
10// $cdata1と$cdata3は同じノードであるため、trueを返す
11var_dump($cdata1->isSameNode($cdata3));
12?>

引数(parameters)

DOMNode $otherNode

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

戻り値(return)

bool

このメソッドは、指定されたノードがこのノードと同じノードであるかどうかを判定し、真偽値 (bool) で返します。同じノードであれば true を、そうでなければ false を返します。

関連コンテンツ

関連プログラミング言語