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

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

作成日: 更新日:

基本的な使い方

isSameNodeメソッドは、指定された2つのDOMノードが同じノードであるかを判定するメソッドです。PHP 8のDOM拡張機能の一部であり、Dom\HTMLDocumentクラスのインスタンスを通じて利用できます。このメソッドは、HTMLやXML文書の構造をプログラムで操作する際に非常に重要です。

DOMノードとは、WebページのHTML要素(例えば<div>タグや<p>タグ)、その要素の属性、テキストコンテンツなど、文書を構成する個々の部品を指します。

isSameNodeメソッドは、2つのDOMNodeオブジェクトがメモリ上で物理的に同一のオブジェクトインスタンスであるかを確認します。これは、ノードが持つ「内容」や「構造」が同じであるかどうかを比較するものではありません。例えば、二つの<div>要素が全く同じテキスト内容を持っていても、それらが文書内の異なる位置に存在する場合(つまり異なるオブジェクトインスタンスである場合)、このメソッドはfalseを返します。しかし、あるノードを変数に代入し、その同じノードの参照を別の変数にも代入した場合、それらの変数が指すノードは物理的に同一であるため、trueを返します。

このメソッドは、特定のノードがすでに処理済みであるか、あるいは特定の操作の対象となるノードが意図したものであるかを確認する際に役立ちます。異なるDOMDocumentインスタンスに属するノード同士は、通常、同一とは見なされません。メソッドの戻り値は真偽値(trueまたはfalse)です。

構文(syntax)

1<?php
2
3$htmlDocumentInstance = new DOM\HTMLDocument();
4$anotherNodeInstance = $htmlDocumentInstance->createElement('p');
5
6$isTheSameNode = $htmlDocumentInstance->isSameNode($anotherNodeInstance);
7
8?>

引数(parameters)

?DOM\Node $other_node

  • ?DOM\Node $other_node: 比較対象のDOMノード。nullを指定することも可能です。

戻り値(return)

bool

このメソッドは、呼び出し元のノードと引数で渡されたノードが同じノードである場合に true を返し、そうでない場合に false を返します。