【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)

戻り値なし

戻り値はありません

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