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

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

作成日: 更新日:

基本的な使い方

cloneNodeメソッドは、Dom\HTMLDocumentクラスが提供するメソッドであり、このHTMLドキュメントオブジェクトの内容を複製するために使用します。このメソッドを利用することで、既存のHTMLドキュメントの構造や情報を、元のドキュメントとは独立した新しいドキュメントオブジェクトとしてコピーすることが可能です。

このメソッドには、$deepというブール型の引数を渡すことができます。この引数の値によって、複製の挙動が変わります。 $deeptrueを指定した場合、対象のHTMLドキュメントオブジェクトだけでなく、その内部に含まれるすべての要素、テキストノード、コメントなどといった子孫ノードもすべて再帰的に複製されます。これにより、元のドキュメントと全く同じ内容を持つ、完全なコピーが作成されます。生成された新しいドキュメントは元のものと完全に独立しており、一方への変更がもう一方に影響を与えることはありません。

一方、$deepfalseを指定した場合、HTMLドキュメントオブジェクト自身のみが複製され、その内部の子孫ノードは複製されません。この場合、コンテンツが空の新しいDom\HTMLDocumentオブジェクトが生成されます。

cloneNodeメソッドは、既存のHTMLドキュメントの構造をテンプレートとして再利用したい場合や、元のドキュメントに影響を与えることなくその内容の一部または全体を操作したい場合に非常に有用です。このメソッドは、複製された新しいDom\HTMLDocumentオブジェクトを返します。

構文(syntax)

1<?php
2
3$document = new Dom\HTMLDocument();
4$clonedNode = $document->cloneNode(true);
5
6?>

引数(parameters)

?bool $deep = false

  • ?bool $deep = false: ノードとそのすべての子孫を深く複製するかどうかを指定するブール値。true の場合、すべての子孫も複製されます。デフォルトは false です。

戻り値(return)

Dom\Node

このメソッドは、元のNodeと同じ構造と内容を持つ新しいNodeオブジェクトを返します。

【PHP8.x】cloneNodeメソッドの使い方 | いっしー@Webエンジニア