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

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

作成日: 更新日:

基本的な使い方

containsメソッドは、指定したノードが現在処理しているDOMNotationノードの子孫であるかどうかを判定するメソッドです。このメソッドは、すべてのDOMノードの基本となる親クラスDOMNodeから継承された機能です。一般的に、あるノードに対してcontainsメソッドを使用すると、引数で渡された別のノードが、そのノードの階層構造内、つまり子や孫ノードとして含まれているかを調べることができます。含まれている場合はtrueを、含まれていない場合はfalseを返します。しかし、DOMの仕様上、DOMNotationノードは子ノードを持つことができません。これは、DOMNotationがDTD(文書型定義)内で宣言された記法そのものを表すための特殊なノードであり、子要素を持つことを想定していないためです。したがって、DOMNotationオブジェクトに対してこのメソッドを呼び出した場合、引数にどのようなノードを指定しても、そのノードが子孫であることはありえないため、結果は常にfalseとなります。このメソッドはクラスの継承関係によって存在しますが、DOMNotationの文脈においては実質的に使用される場面はありません。

構文(syntax)

1<?php
2$xmlString = <<<XML
3<?xml version="1.0" encoding="UTF-8"?>
4<!DOCTYPE root [
5    <!NOTATION notation1 PUBLIC "public_id_1">
6    <!NOTATION notation2 PUBLIC "public_id_2">
7]>
8<root/>
9XML;
10
11$doc = new DOMDocument();
12$doc->validateOnParse = true;
13$doc->loadXML($xmlString);
14
15// DOMNotation オブジェクトを取得
16$notation = $doc->doctype->notations->getNamedItem('notation1');
17$otherNode = $doc->doctype->notations->getNamedItem('notation2');
18
19// $notation が $otherNode を子孫として含むか判定します。
20$isContained = $notation->contains($otherNode);
21
22var_dump($isContained);
23?>

引数(parameters)

?DOMNode $other

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

戻り値(return)

bool

指定された文字列がDOMNotationオブジェクト内に含まれているかどうかを真偽値(trueまたはfalse)で返します。

関連コンテンツ

関連プログラミング言語