【PHP8.x】DOMEntityReference::cloneNode()メソッドの使い方
cloneNodeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『cloneNodeメソッドは、既存のエンティティ参照ノード(DOMEntityReferenceオブジェクト)を複製し、新しいノードを作成するために実行するメソッドです。このメソッドは、引数にブール値を指定することで、複製の深さを制御できます。引数にtrueを渡した場合、「ディープクローン」として動作し、対象となるエンティティ参照ノードだけでなく、そのノードが持つすべての子孫ノードも再帰的にコピーします。これにより、ノードの構造全体が完全に複製された新しいノードが生成されます。一方、引数にfalseを渡すか、引数を省略した場合は「シャロークローン」として動作し、エンティティ参照ノード自体のみを複製します。この場合、子ノードは一切コピーされません。メソッドの実行が成功すると、複製された新しいDOMEntityReferenceオブジェクトが返されます。この返されたノードは、元のドキュメントからは独立しており、ドキュメントツリーに挿入するにはappendChildメソッドなどを使用する必要があります。もしノードの複製に失敗した場合には、このメソッドはfalseを返します。
構文(syntax)
1<?php 2 3$document = new DOMDocument(); 4$entity_reference = $document->createEntityReference('entity_name'); 5 6// DOMEntityReference オブジェクトの複製を生成します 7$cloned_node = $entity_reference->cloneNode(); 8 9?>
引数(parameters)
bool $deep = false
- deep: bool = false: true を指定すると、ノードとそのすべての属性および子ノードが再帰的にコピーされます。false の場合、ノードのみがコピーされ、子ノードはコピーされません。
戻り値(return)
DOMNode|false
DOMEntityReference オブジェクトのコピーを返します。コピーは、元のノードと同じ内容と属性を持つ新しい DOMEntityReference オブジェクトです。操作が失敗した場合は false を返します。