【PHP8.x】isConnectedプロパティの使い方
isConnectedプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
isConnectedプロパティは、現在のDOMノードがDOMツリーに接続されているかどうかを示す真偽値を保持するプロパティです。具体的には、このプロパティはDom\Notationクラスのインスタンスが、属しているドキュメントのツリー内に存在し、そのドキュメントを介してアクセス可能である場合にtrueを返します。そうでない場合、つまりノードが作成されただけでまだドキュメントツリーに追加されていない、またはツリーから削除された状態であればfalseを返します。
Dom\Notationは、XMLドキュメントにおいて、外部の非XMLデータ形式などを指定するNOTATION宣言という特定の情報を表現するクラスです。このisConnectedプロパティは、そのようなDom\Notationオブジェクトが、実際にDOMツリーの一部として機能しているかをプログラムで確認するために使用されます。ノードがツリーに接続されているかどうかの状態は、そのノードに対する操作が正しく機能するかどうかを判断する上で非常に重要です。PHP 8以降のDOM拡張機能では、DOM Living Standardに準拠し、ノードの接続状態を明確に確認できるようになりました。このプロパティは、XMLドキュメントの構造を操作する際に、ノードの有効性をチェックし、より堅牢なコードを記述するために役立ちます。
構文(syntax)
1<?php 2// DTD (Document Type Definition) を含むXML文字列を作成します。 3// ここでは 'MyNotation' という名前のNOTATIONが定義されています。 4$xmlString = <<<XML 5<?xml version="1.0"?> 6<!DOCTYPE document [ 7 <!NOTATION MyNotation SYSTEM "my_specific_parser.exe"> 8 <!ELEMENT document EMPTY> 9]> 10<document/> 11XML; 12 13// DOMDocumentオブジェクトを作成し、上記のXMLを読み込みます。 14// これにより、XMLドキュメントの構造とDTDがパースされます。 15$dom = new DOMDocument(); 16$dom->loadXML($xmlString); 17 18// DOMDocumentTypeオブジェクトから、定義されたNOTATIONを取得します。 19// Dom\Notationは、DTD内で定義されたNOTATION宣言を表すオブジェクトです。 20$notation = $dom->doctype->notations->getNamedItem('MyNotation'); 21 22// Dom\Notation::isConnected プロパティにアクセスし、このNOTATIONノードが 23// DOMツリー(この場合はドキュメントのDTD内)に接続されているかを確認します。 24// ドキュメントにロードされているため、通常は true を返します。 25var_dump($notation->isConnected); 26?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
bool
このプロパティは、Dom\Notation オブジェクトが現在接続されているかどうかを示す真偽値(bool)を返します。接続されていれば true、そうでなければ false を返します。