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

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

作成日: 更新日:

基本的な使い方

containsメソッドは、PHPのDOMAttrクラスに属するメソッドで、特定のHTMLやXML要素の属性値が、指定された文字列(トークン)を含むかどうかを判定するメソッドです。

DOMAttrクラスは、ウェブページなどのドキュメントを構成する要素の「属性」を表現するためのオブジェクトです。例えば、<div class="example active">というHTML要素がある場合、class="example active"という部分全体がDOMAttrオブジェクトとして扱われます。このcontainsメソッドは、特にclass属性のように、複数の値をスペースで区切って記述する属性値(これをDOMTokenListと呼びます)に対して非常に効果を発揮します。メソッドが実行されると、属性値を空白で区切って複数の文字列(トークン)に分解し、その中から引数として渡された文字列と完全に一致するものがあるかどうかを効率的に探索します。

このメソッドを使用することで、例えば、ある要素が特定のCSSクラス(例: activeクラス)を持っているかどうかを、簡単かつ明確に確認することができます。属性値を手動で解析したり、複雑な正規表現を使用したりする手間を省き、より安全で保守しやすいコードを記述できます。指定されたトークンが属性値のリストに含まれている場合はtrueを、含まれていない場合はfalseを返します。ウェブアプリケーションで要素の状態を動的に判別したり、表示を切り替えたりする際に、DOM操作を簡潔に進めるための便利な機能です。

構文(syntax)

1<?php
2
3// DOMドキュメントを作成し、HTMLを読み込む
4$doc = new DOMDocument();
5$doc->loadHTML('<p id="greeting">Hello</p>');
6
7// p要素から id属性ノード (DOMAttr) を取得
8$attrNode = $doc->getElementsByTagName('p')->item(0)->getAttributeNode('id');
9
10// 属性ノードが持つ子ノード (この場合はテキストノード "greeting") を取得
11$textNode = $attrNode->firstChild;
12
13/*
14 * public DOMNode::contains(?DOMNode $other): bool
15 *
16 * $other で指定したノードが、このノードの子孫であるかどうかを調べます。
17 * DOMAttr は DOMNode を継承しているため、このメソッドを使用できます。
18 */
19$result = $attrNode->contains($textNode);
20
21// 結果は true になります
22var_dump($result);
23
24?>

引数(parameters)

DOMNode $other

  • DOMNode $other: 比較対象となるDOMNodeオブジェクト

戻り値(return)

戻り値なし

戻り値はありません

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