【PHP8.x】isConnectedプロパティの使い方

isConnectedプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

isConnectedプロパティは、指定されたDOMノードが現在の文書ツリーに接続されているかどうかを示すブール値を保持するプロパティです。このプロパティは、PHP 8でDOM拡張機能に追加されたもので、DOMノードの状態を簡潔に確認する手段を提供します。

具体的には、このプロパティがtrueを返す場合、そのノードはHTMLまたはXML文書の現在の構造の一部として存在していることを意味します。例えば、ノードが親ノードを持ち、文書ツリーのどこかに配置されている場合や、それ自体が文書のルートノードである場合などがこれに該当します。

対照的に、このプロパティがfalseを返す場合、そのノードは文書ツリーから切り離された状態にあることを示します。これは、DOMDocument::createElement()などで新しく作成されたノードがまだappendChild()insertBefore()などのメソッドで文書ツリーに追加されていない場合や、removeChild()などで一度文書ツリーから削除されたノードが、変数内で保持されているものの、もはや文書の一部ではない場合などに該当します。

このプロパティを使用することで、DOM操作を行う際に、特定のノードが有効な文書コンテキスト内に存在するかどうかを効率的に判断できます。これにより、不要な操作を避けたり、ノードの状態に応じた適切な処理を実装したりすることが容易になります。isConnectedプロパティは読み取り専用であり、ノードの接続状態を直接変更することはできません。

構文(syntax)

1<?php
2
3// HTMLからDOMドキュメントを作成
4$dom = new DOMDocument();
5$dom->loadHTML('<p>Hello World</p>');
6
7// ドキュメントに接続されているテキストノードを取得
8// DOMTextはDOMCharacterDataを継承しています
9$connectedNode = $dom->getElementsByTagName('p')->item(0)->firstChild;
10
11// isConnectedプロパティは、ノードがドキュメントに接続されている場合にtrueを返します
12var_dump($connectedNode->isConnected); // 出力: bool(true)
13
14// ドキュメントに接続されていない新しいテキストノードを作成
15$disconnectedNode = new DOMText('Disconnected Text');
16
17// このノードはまだドキュメントに追加されていないため、isConnectedはfalseを返します
18var_dump($disconnectedNode->isConnected); // 出力: bool(false)
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

このプロパティは、ノードがDOMツリーに接続されているかどうかを示す真偽値(bool)を返します。trueであれば接続されており、falseであれば接続されていません。

【PHP8.x】isConnectedプロパティの使い方 | いっしー@Webエンジニア