【PHP8.x】DOMProcessingInstruction::isSameNode()メソッドの使い方
isSameNodeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『isSameNodeメソッドは、引数で指定されたノードが、メソッドを呼び出したDOMProcessingInstructionノードと完全に同一のノードであるかどうかを判定するために実行するメソッドです。ここでいう「同一のノード」とは、2つの変数がメモリ上で全く同じオブジェクトインスタンスを参照している状態を指します。これは、PHPの厳密な比較演算子(===)を用いて2つのオブジェクトを比較した場合と同じ結果になります。このメソッドは、ノードのターゲットやデータといった内容が同じかどうかを比較するisEqualNodeメソッドとは明確に区別されます。例えば、内容が全く同じ2つの処理命令ノードを別々に作成した場合、isEqualNodeはtrueを返しますが、それらは異なるオブジェクトであるためisSameNodeはfalseを返します。このメソッドは、DOMツリーを操作する過程で、ある変数が指すノードが特定のノードオブジェクトそのものであるかを正確に識別したい場合に役立ちます。判定結果として、同一のノードであればtrue、そうでなければfalseの真偽値を返します。
構文(syntax)
1<?php 2 3$document = new DOMDocument(); 4$document->loadXML('<?xml version="1.0"?><?php instruction1 ?><root/>'); 5 6$pi1 = $document->firstChild; 7$pi2 = $pi1; 8$pi3 = $document->createProcessingInstruction('php', 'instruction2'); 9 10// isSameNode(?DOMNode $otherNode): bool 11 12// $pi1と$pi2は同じオブジェクトを参照しているため、trueを返します。 13$result1 = $pi1->isSameNode($pi2); 14var_dump($result1); 15 16// $pi1と$pi3は異なるオブジェクトのため、falseを返します。 17$result2 = $pi1->isSameNode($pi3); 18var_dump($result2); 19 20?>
引数(parameters)
?DOMNode $otherNode
- ?DOMNode $otherNode: 比較対象のDOMノードを指定します。
nullを指定することも可能です。
戻り値(return)
bool
このメソッドは、指定されたノードと現在のノードが同じノードである場合に true を返します。それ以外の場合は false を返します。