【PHP8.x】DOCUMENT_POSITION_DISCONNECTED定数の使い方
DOCUMENT_POSITION_DISCONNECTED定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『DOCUMENT_POSITION_DISCONNECTED定数は、2つのノードが同じ文書内に存在しない、つまり互いに無関係な状態であることを示すビットマスク値を表す定数です。この定数は、主に Dom\Node::compareDocumentPosition() メソッドの返り値として利用されます。compareDocumentPosition() メソッドは、あるノード(HTMLの要素など)から見て、引数で指定された別のノードが文書構造の中でどのような位置関係にあるか、例えば先行しているか、後続しているか、内包しているかなどを判定するために使用します。このメソッドの比較結果として DOCUMENT_POSITION_DISCONNECTED が返された場合、それは比較対象の2つのノードが同じDOMツリーに属していないことを意味します。具体的な状況としては、createElement() などで新しく作成されただけでまだ文書に追加されていないノードや、removeChild() によって文書から既に取り除かれたノードなどが該当します。したがって、この定数を確認することで、対象のノードが現在ドキュメントに接続されているか、あるいは切り離された状態にあるかをプログラムで判別することが可能になります。』
構文(syntax)
1<?php 2 3// 2つの異なるDOMDocumentインスタンスを作成します 4$doc1 = new DOMDocument(); 5$element1 = $doc1->createElement('p'); 6 7$doc2 = new DOMDocument(); 8$element2 = $doc2->createElement('span'); 9 10// 異なるドキュメントに属する要素の位置関係を比較します 11$position = $element1->compareDocumentPosition($element2); 12 13// ビットマスクを使用して、要素が「接続されていない」状態かを確認します 14if ($position & Dom\HTMLElement::DOCUMENT_POSITION_DISCONNECTED) { 15 // この定数は、2つのノードが異なるドキュメントに属している場合に true となります 16 echo "The nodes are disconnected."; 17} 18 19?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
Dom\HTMLElement::DOCUMENT_POSITION_DISCONNECTED は、ノードが別のドキュメントに属していることを示す定数であり、整数値 1 を返します。