【PHP8.x】Dom\ProcessingInstruction::isSameNode()メソッドの使い方
isSameNodeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『isSameNodeメソッドは、2つのDom\ProcessingInstructionノードが、メモリ上で全く同一のオブジェクトであるかどうかを判定するメソッドです。このメソッドは、ノードの持つターゲットやデータといった内容が同じかどうかを比較するわけではありません。そうではなく、2つの変数が指し示しているノードのインスタンスそのものが、完全に同じものであるかどうか、つまり参照が同一であるかを確認します。比較対象となるノードオブジェクトを引数に指定すると、メソッドを呼び出したノードと引数のノードが同一のインスタンスであればtrueを、そうでなければfalseを返します。例えば、あるノードをcloneNodeメソッドで複製した場合、複製元と複製先のノードは内容は同じですが、それぞれが独立した別のオブジェクトとなるため、isSameNodeメソッドで比較した結果はfalseとなります。もしノードの内容が等しいかどうかを判定したい場合は、isEqualNodeメソッドを使用します。このメソッドは、DOMツリーを操作する中で、ある変数が特定のノードインスタンスそのものを指しているかを厳密に検証する際に利用されます。』
構文(syntax)
1<?php 2$document = new Dom\Document(); 3 4// 比較元となる処理命令ノード 5$node1 = $document->createProcessingInstruction('target1', 'data1'); 6 7// 比較対象となる、別の処理命令ノード 8$node2 = $document->createProcessingInstruction('target2', 'data2'); 9 10// 2つの変数がメモリ上の同じノードオブジェクトを指しているか判定します。 11// この場合、異なるノードなので false が返ります。 12$result = $node1->isSameNode($node2); 13 14var_dump($result); 15?>
引数(parameters)
?Dom\Node $otherNode
- ?Dom\Node $otherNode: 比較対象のノードを指定します。nullを指定することも可能です。
戻り値(return)
bool
このメソッドは、現在のノードが指定されたノードと同じノードである場合にtrueを、そうでない場合にfalseを返します。