【PHP8.x】DOCUMENT_POSITION_DISCONNECTED定数の使い方
DOCUMENT_POSITION_DISCONNECTED定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
DOCUMENT_POSITION_DISCONNECTED定数は、DOMノードの位置関係を示すビットマスクの一部として、2つのノードが互いに無関係なドキュメントに存在すること、あるいはドキュメントツリーに接続されていないことを表す定数です。この定数は、主にDOMNode::compareDocumentPosition()メソッドの返り値として使用されます。このメソッドは、あるノードから見た別のノードの位置関係を比較し、その結果をビットフラグの組み合わせで返します。返り値にDOCUMENT_POSITION_DISCONNECTEDが含まれているかどうかを判定するには、ビット単位の論理積(&)演算子を用います。例えば、createElement()で新しく作成され、まだドキュメントに追加されていないノードと、既存のドキュメント内のノードを比較した場合、compareDocumentPosition()の結果にはこの定数のビットが含まれます。したがって、この定数を利用することで、2つのノードが同じ階層構造の中に存在しない、完全に分離した状態であることをプログラム上で正確に判定できます。これは、DOM操作において、ノードがドキュメントに正しく追加されているかを確認する際などに役立ちます。
構文(syntax)
1<?php 2$doc1 = new DOMDocument(); 3$doc1->loadXML('<rootA/>'); 4$node1 = $doc1->documentElement; 5 6$doc2 = new DOMDocument(); 7$doc2->loadXML('<rootB/>'); 8$node2 = $doc2->documentElement; 9 10$position = $node1->compareDocumentPosition($node2); 11 12if ($position & DOMEntity::DOCUMENT_POSITION_DISCONNECTED) { 13 echo "The nodes are in different documents."; 14} 15?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
DOMEntity::DOCUMENT_POSITION_DISCONNECTED は、2つのノードがどのDOMツリーにも属していない、または異なるDOMツリーに属していることを示す整数値です。