【PHP8.x】DOMProcessingInstruction::DOCUMENT_POSITION_DISCONNECTED定数の使い方
DOCUMENT_POSITION_DISCONNECTED定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
DOCUMENT_POSITION_DISCONNECTED定数は、2つのDOMノードが同じ文書に属していない、つまり互いに接続されていない状態を表す定数です。この定数は主に、DOMNode::compareDocumentPosition()メソッドの戻り値として使用されます。compareDocumentPosition()メソッドは、あるノードが別のノードに対して、文書構造の中でどのような位置関係にあるかを判定する機能を提供します。例えば、あるノードが別のノードより前に出現するか、後に出現するか、あるいは親子関係にあるかなどを調べることができます。このメソッドを呼び出した際に、比較している2つのノードが異なるDOMドキュメントに属している場合や、まだドキュメントツリーに追加されていない場合に、戻り値としてこのDOCUMENT_POSITION_DISCONNECTEDが含まれます。これにより、ノード間の具体的な前後関係を調べる前に、そもそも両者が比較可能な同じ文書内に存在するかどうかを判断できます。この定数はDOMNodeクラスで定義されており、そのサブクラスであるDOMProcessingInstructionなどでも利用可能です。
構文(syntax)
1<?php 2$doc = new DOMDocument(); 3$rootElement = $doc->createElement('root'); 4$doc->appendChild($rootElement); 5 6// ドキュメントに追加されていない(切断された)ノードを作成 7$pi = new DOMProcessingInstruction('app', 'action="process"'); 8 9// 接続されたノードと切断されたノードの位置関係を比較 10$position = $rootElement->compareDocumentPosition($pi); 11 12// DOMProcessingInstruction::DOCUMENT_POSITION_DISCONNECTED は、 13// 比較したノードが互いに無関係なドキュメントに属していることを示すビットマスク値です。 14if ($position & DOMProcessingInstruction::DOCUMENT_POSITION_DISCONNECTED) { 15 echo 'The processing instruction node is disconnected.'; 16}
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
DOCUMENT_POSITION_DISCONNECTED は、ノードが文書ツリーに接続されていない状態を表す整数値です。