【PHP8.x】parentNodeプロパティの使い方

parentNodeプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

parentNodeプロパティは、DOMElementオブジェクトの親ノードを保持するプロパティです。具体的には、あるDOM要素(DOMElementオブジェクト)が、DOMツリー構造においてどのノードの子として存在するかを示す情報を保持します。parentNodeプロパティにアクセスすることで、その要素の親ノードにあたるDOMNodeオブジェクトを取得できます。

例えば、HTMLドキュメント内の <div> 要素を表すDOMElementオブジェクトがあるとします。この <div> 要素が <body> 要素の子である場合、その <div> 要素の parentNode プロパティは、<body> 要素に対応するDOMNodeオブジェクトを指します。

parentNodeプロパティは、DOMツリーを上方向に辿る際に非常に役立ちます。ある要素から、その親要素、さらにその親要素へと、DOMツリーを遡って必要な情報を取得したり、操作を行ったりすることが可能です。

parentNodeプロパティの値は、常にDOMNodeオブジェクト、または null のいずれかです。もし、その要素がDOMツリーのルートノード(例えば、Documentオブジェクト)である場合、parentNodeプロパティは null を返します。これは、ルートノードには親が存在しないためです。

DOMDocumentオブジェクト自体はparentNodeプロパティを持ちません。DOMDocumentはDOMツリーの頂点に位置するため、親ノードは存在しないからです。DOMElementオブジェクトがremoveChild()メソッドなどでDOMツリーから削除された場合でも、parentNodeプロパティは削除前に指していた親ノードを保持し続けます。これは、その要素がメモリ上に存在し続けている限り、元の親ノードの情報が維持されるためです。

構文(syntax)

1<?php
2$dom = new DOMDocument();
3$element = $dom->createElement('child');
4$root = $dom->appendChild($element);
5
6$parent = $element->parentNode;
7
8echo $parent === $dom ? '親ノードはDOMDocumentです' : '親ノードはDOMDocumentではありません';
9?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNode|null

このプロパティは、この要素の親ノードを表すDOMNodeオブジェクト、または親ノードが存在しない場合はnullを返します。

【PHP8.x】parentNodeプロパティの使い方 | いっしー@Webエンジニア