Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】Dom\EntityReference::DOCUMENT_POSITION_CONTAINED_BY定数の使い方

DOCUMENT_POSITION_CONTAINED_BY定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『DOCUMENT_POSITION_CONTAINED_BY定数は、DOMドキュメント内における2つのノードの位置関係を示すために使用される、あらかじめ定義された値の一つです。具体的には、基準となるノードが、比較対象のノードに内包されている状態を表します。この定数は主に Dom\Node::compareDocumentPosition() メソッドの戻り値に含まれるビットフラグとして利用されます。このメソッドは、2つのノードの相対的な位置を評価し、その結果をビットマスクとして返却します。返された値に DOCUMENT_POSITION_CONTAINED_BY のビットが含まれている場合、それはメソッドを呼び出したノードが引数で渡されたノードの子孫、つまり内側にあることを意味します。開発者は、この定数とビット単位の論理積(&)演算子を用いて、戻り値から特定の関係性を判定することができます。これにより、プログラム上でDOMツリーの構造を正確に把握し、ノード間の包含関係に基づいた処理を実装することが可能になります。

構文(syntax)

1<?php
2
3$xml = <<<XML
4<?xml version="1.0"?>
5<!DOCTYPE root [<!ENTITY sample "text">]>
6<root><parent>&sample;</parent></root>
7XML;
8
9$doc = new Dom\Document();
10$doc->loadXML($xml);
11
12$parent = $doc->getElementsByTagName('parent')[0];
13$entityRef = $parent->firstChild;
14
15$position = $entityRef->compareDocumentPosition($parent);
16
17if ($position & Dom\EntityReference::DOCUMENT_POSITION_CONTAINED_BY) {
18    echo "The node is contained by the other node.";
19}
20
21?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

DOCUMENT_POSITION_CONTAINED_BYは、あるDOMノードが別のDOMノードに完全に含まれていることを示す整数値です。

関連コンテンツ

関連プログラミング言語