【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)で返します。