【PHP8.x】DOCUMENT_POSITION_FOLLOWING定数の使い方
DOCUMENT_POSITION_FOLLOWING定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
DOCUMENT_POSITION_FOLLOWING定数は、2つのDOMノード間の文書内での位置関係を表す定数です。この定数は、主にDOMNode::compareDocumentPosition()メソッドの返り値として使用されます。このメソッドは、あるノードが別のノードに対して、文書内でどの位置にあるかを比較し、その関係をビットマスクとして返します。compareDocumentPosition()メソッドの結果にDOCUMENT_POSITION_FOLLOWINGが含まれている場合、それは比較対象のノードが、メソッドを呼び出した基準ノードよりも後に文書内で出現することを示します。これは、HTMLやXMLのソースコードにおいて、基準となる要素の終了タグよりも後に、比較対象の要素の開始タグが現れる順序関係を意味します。返り値は複数の状態を示すビットマスク値であるため、この定数とのビット単位の論理積(&演算子)をとることで、後続関係にあるかどうかを具体的に判定できます。このように、DOCUMENT_POSITION_FOLLOWINGは、DOMツリー構造をプログラムで解析し、ノードの出現順序に基づいて処理を行う際に不可欠な役割を果たします。
構文(syntax)
1<?php 2$doc = new DOMDocument(); 3$doc->loadHTML('<html><body><p></p><div></div></body></html>'); 4 5$p_node = $doc->getElementsByTagName('p')->item(0); 6$div_node = $doc->getElementsByTagName('div')->item(0); 7 8// $p_node から見て $div_node がドキュメント順で後にあるか比較します 9$position = $p_node->compareDocumentPosition($div_node); 10 11// 比較結果に DOCUMENT_POSITION_FOLLOWING フラグが含まれているか確認します 12if ($position & DOMEntity::DOCUMENT_POSITION_FOLLOWING) { 13 echo 'div_node は p_node の後にあります。'; 14}
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
DOCUMENT_POSITION_FOLLOWING は、ノードが別のノードの後に続くことを示す整数値です。