【PHP8.x】containsメソッドの使い方

containsメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

containsメソッドは、あるDOMノードが、別の特定のDOMノードをその子孫として含んでいるかどうかを判定するメソッドです。このメソッドは、Dom\Nodeクラスのインスタンスに対して呼び出され、引数としてチェック対象となる別のDom\Nodeオブジェクトを受け取ります。

具体的には、呼び出し元のノードが、引数で渡されたノードをDOMツリー内で直接的または間接的な子孫ノードとして持っている場合にtrueを返します。この際、引数のノードが呼び出し元のノード自身である場合も、包含関係があると見なされtrueが返されます。もし包含関係がない、つまり引数のノードが呼び出し元のノードの子孫ではない場合はfalseが返されます。

この機能は、HTMLやXMLドキュメントの構造をPHPで解析したり操作したりする際に非常に有用です。例えば、特定のHTML要素が別のコンテナ要素の内側にあるかどうかを確認したい場合や、ユーザーインターフェースにおける要素の階層的な関係性をプログラムで検証したい場合などに活用できます。Dom\Node::containsメソッドは、DOMツリー内での要素間の関係性を簡潔かつ正確に判断するための基本的なツールとして提供されています。

構文(syntax)

1<?php
2
3// Dom\Documentのインスタンスを作成
4$document = new Dom\Document();
5
6// 親ノード(div要素)を作成し、ドキュメントに追加
7$parentNode = $document->createElement('div');
8$document->appendChild($parentNode);
9
10// 子ノード(span要素)を作成し、親ノードに追加
11$childNode = $document->createElement('span');
12$parentNode->appendChild($childNode);
13
14// 親子関係にない別のノード(p要素)を作成
15$unrelatedNode = $document->createElement('p');
16
17// 親ノードが子ノードを含んでいるかを確認
18$isContained = $parentNode->contains($childNode); // 結果は true
19
20// 親ノードが関連性のないノードを含んでいるかを確認
21$isNotContained = $parentNode->contains($unrelatedNode); // 結果は false
22
23?>

引数(parameters)

?Dom\Node $other

  • ?Dom\Node $other: 比較対象となるDOMノードを指定します。

戻り値(return)

bool

指定されたノードがこのノードの子孫である場合に TRUE を返します。そうでなければ FALSE を返します。

【PHP8.x】containsメソッドの使い方 | いっしー@Webエンジニア