【PHP8.x】containsメソッドの使い方
containsメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
containsメソッドは、Dom\Attrクラスに属し、HTMLやXML文書の要素が持つ属性値に、特定のキーワード(トークン)が含まれているかどうかを確認するメソッドです。
Dom\Attrクラスは、Webページを構成するHTML要素やXML要素が持つ属性、例えば<div class="highlight active">におけるclass属性全体(class="highlight active")を表現するオブジェクトです。これらの属性の中には、class属性のように、複数のキーワードがスペースで区切られて記述されるものがあります。
containsメソッドは、このようなスペース区切りの属性値の中から、指定された単一のキーワードが存在するかどうかを効率的に調べることができます。たとえば、あるHTML要素のclass属性が"primary selected"という値を持っているとします。このDom\Attrオブジェクトに対してcontains("selected")を実行すると、その属性値に"selected"が含まれているため、trueが返されます。逆に、contains("disabled")を実行すれば、"disabled"は含まれていないためfalseが返されます。
このメソッドは、属性値を直接文字列として解析するような複雑な処理を不要にし、コードをよりシンプルで読みやすいものにします。特に、CSSクラスの有無の判定や、データ属性のフラグ管理など、複数のキーワードが属性値として利用される場面で、文字列操作による複雑な判定ロジックを記述する手間を省き、コードの可読性と保守性を大幅に向上させます。PHP 8以降で利用可能です。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$element = $dom->createElement('item'); 4$element->setAttribute('tags', 'electronics home decor gadgets'); 5 6$attr = $element->attributes->getNamedItem('tags'); 7 8// シンタックス: Dom\Attr::contains(string $token) 9$hasTag = $attr->contains('gadgets'); 10?>
引数(parameters)
Dom\Node|Dom\Attr $other
- Dom\Node|Dom\Attr $other: 比較対象となるDom\NodeオブジェクトまたはDom\Attrオブジェクト
戻り値(return)
戻り値なし
戻り値はありません