【PHP8.x】DOMProcessingInstruction::DOCUMENT_POSITION_FOLLOWING定数の使い方
DOCUMENT_POSITION_FOLLOWING定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『DOCUMENT_POSITION_FOLLOWING定数は…を表す定数です』
DOCUMENT_POSITION_FOLLOWING定数は、2つのDOMノードの文書内における相対的な位置関係を示すために使用される定数です。この定数は、主にDOMNode::compareDocumentPosition()メソッドの返り値として利用され、比較対象のノードが基準となるノードよりも後方、つまりソースコードの出現順で後にあることを示します。compareDocumentPosition()メソッドは、2つのノードの位置関係を判定し、その結果をビットマスクと呼ばれる数値で返します。このビットマスクには、ノード間の関係性を示す複数の定数の情報が含まれている可能性があります。DOCUMENT_POSITION_FOLLOWINGは、そのうちの「後方にある」という関係性を表すものです。例えば、あるノードAに対してノードBの位置を比較した際、ノードBがノードAよりも後に出現する場合、メソッドの返り値にはこの定数のビットが含まれます。返り値とこの定数をビット単位のAND演算子(&)で比較することで、ノードが後方にあるかどうかを正確に判定できます。
構文(syntax)
1<?php 2 3$dom = new DOMDocument(); 4$dom->loadXML('<root><?target1?><child/><?target2?></root>'); 5 6// 2つの処理命令ノードを取得します 7$pi1 = $dom->documentElement->firstChild; 8$pi2 = $dom->documentElement->lastChild; 9 10// 最初のノードから見て、2番目のノードの位置関係を比較します 11$comparison = $pi1->compareDocumentPosition($pi2); 12 13// 比較結果に「後続」を示すビットが含まれているかを確認します 14if ($comparison & DOMProcessingInstruction::DOCUMENT_POSITION_FOLLOWING) { 15 echo '2番目の処理命令は、1番目の処理命令の後にあります。'; 16} 17 18?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
DOCUMENT_POSITION_FOLLOWING は、ノードが指定されたノードの後に続くことを示す整数定数です。