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

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

作成日: 更新日:

基本的な使い方

lastChildプロパティは、Dom\Attrクラスに属し、そのノードの最後の子ノードを保持するプロパティです。プログラミングにおいて、ウェブページやXMLドキュメントの構造を表現するDOM(Document Object Model)では、多くの要素が子ノードを持つことができます。例えば、HTMLの<div>要素がテキストや他の要素を内包している場合、その<div>lastChildプロパティは、その内部にある最後の子ノードを返します。

しかし、Dom\Attrクラスは、HTML要素やXML要素の「属性」を表す特殊なノードです。例えば、<img src="image.jpg">というタグでは、「src」が属性の名前、「image.jpg」が属性の値です。このDom\Attrオブジェクトは、属性値自体を子ノードとして持つのではなく、親となる要素ノードに付加されるメタ情報として扱われます。DOMの仕様上、属性ノードは子ノードを持つことができません。

そのため、Dom\AttrオブジェクトのlastChildプロパティにアクセスしても、その値は常にnullとなります。これは、属性ノードが一般的な要素ノードのような階層構造の子ノードを持たないというDOMの厳格な設計に基づいています。もし、属性の値そのものを取得したい場合は、Dom\AttrオブジェクトのvalueプロパティやnodeValueプロパティを使用してください。lastChildプロパティは、Dom\Attrオブジェクトに対しては、子ノードが存在しないことを示すnullを返すことを理解しておくことが重要です。

構文(syntax)

1<?php
2
3$document = new Dom\Document();
4$document->loadXML('<element attribute="attribute-value" />');
5
6$element = $document->firstElementChild;
7$attribute = $element->getAttributeNode('attribute');
8
9// Dom\Attr::$lastChild プロパティにアクセスします
10$lastChild = $attribute->lastChild;
11
12// 取得したノードの値を出力します
13var_dump($lastChild->nodeValue);
14
15?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

DOMNode|null

このプロパティは、属性ノードの最後の子ノード、または子ノードが存在しない場合は null を返します。

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