【PHP8.x】DOMEntityReference::isSameNode()メソッドの使い方
isSameNodeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
isSameNodeメソッドは、あるノードが別のノードと全く同じノードであるかどうかを判定するために実行するメソッドです。このメソッドは、2つの変数がDOMツリー内の同一のオブジェクト、つまりメモリ上で同じ場所を指しているかを厳密にチェックします。引数として比較したいDOMNodeオブジェクトを渡すと、2つのノードが完全に同じものである場合にはtrueを、異なるノードである場合にはfalseを返します。似た機能を持つisEqualNodeメソッドは、ノードの種類や属性、子ノードなどの内容が等しいかどうかを比較しますが、isSameNodeメソッドは参照が同じであるかどうかを確認する点で異なります。そのため、内容が全く同じでも、別々に生成された2つのノードをisSameNodeで比較した場合はfalseが返されます。このメソッドはDOMNodeクラスから継承されており、DOMEntityReferenceオブジェクトだけでなく、DOMElementやDOMTextなど、多くのDOM関連クラスのインスタンスで使用することが可能です。DOMツリーを操作する際に、特定のノードが意図したものと同一であるかを確実に判断するために利用されます。
構文(syntax)
1$doc = new DOMDocument(); 2$doc->loadXML(<<<XML 3<!DOCTYPE root [ 4 <!ENTITY myentity "entity content"> 5]> 6<root>&myentity;</root> 7XML); 8 9$entityReferenceNode = $doc->getElementsByTagName('root')->item(0)->firstChild; 10 11$otherNode = $entityReferenceNode; 12 13$isSame = $entityReferenceNode->isSameNode($otherNode);
引数(parameters)
?DOMNode $otherNode
- ?DOMNode $otherNode: 比較対象となるDOMNodeオブジェクト。nullを指定することも可能です。
戻り値(return)
bool
このメソッドは、指定されたノードが現在のノードと同一であるかどうかを判定し、真偽値(bool)を返します。真であれば同一、偽であれば同一ではありません。