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

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

作成日: 更新日:

基本的な使い方

isSameNodeメソッドは、指定されたノードが現在のノードと同一のノードであるかを判断するメソッドです。このメソッドは、PHPのDOM拡張機能におけるDom\CharacterDataクラスに属しており、HTMLやXMLドキュメントのテキストデータやコメントデータなどを表すノードインスタンスに対して利用されます。

Webページなどのドキュメント構造を扱う際に、異なる変数に代入されたノードが、実際にメモリ上で同じオブジェクトインスタンスを指しているのかどうかを確認したい場合があります。isSameNodeメソッドは、このような「オブジェクトの同一性」を厳密に比較するために設計されています。例えば、あるDOMノードを何度か取得し、それぞれを異なる変数に格納した場合でも、それらの変数が同じノードオブジェクトを参照しているのかどうかをこのメソッドで確認できます。

このメソッドは、ノードの内容や属性が同じであるかどうかではなく、完全に同じオブジェクトインスタンスであるかどうかの真偽を返します。つまり、たとえ内容が全く同じ別のノードであっても、異なるインスタンスであればfalseを返します。同じインスタンスであればtrueを返します。システム開発において、DOMツリーの操作中にノードの重複や誤った参照を防ぐために非常に有用です。

構文(syntax)

1<?php
2// Dom\Text は Dom\CharacterData を継承します
3$nodeA = new DOMText('最初のテキスト');
4$nodeB = new DOMText('別のテキスト');
5$nodeC = $nodeA; // $nodeA と同じオブジェクトを参照
6
7// isSameNode メソッドの呼び出し構文
8// 別の Dom\Node オブジェクトを引数として渡し、真偽値の結果を受け取ります
9$isSameNode1 = $nodeA->isSameNode($nodeB);
10$isSameNode2 = $nodeA->isSameNode($nodeC);
11?>

引数(parameters)

?Dom\Node $otherNode

  • ?Dom\Node $otherNode: 比較対象となる他のDom\Nodeオブジェクト。nullを指定することも可能です。

戻り値(return)

bool

指定されたDOMCharacterDataノードが、このノードと同じノードであるかどうかを判定し、真偽値(bool)を返します。

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