
DOMDocumentFragment::append 메소드는 DOMDocumentFragment에 노드를 추가할 때 사용됩니다. 이 메소드는 노드를 추가한 순서대로 노드를 추가합니다. 예를 들어, 다음 코드를 보겠습니다.
#hostingforum.kr
php
$doc = new DOMDocument();
$fragment = $doc->createDocumentFragment();
$node1 = $doc->createElement('div');
$node2 = $doc->createElement('p');
$fragment->append($node1);
$fragment->append($node2);
$doc->appendChild($fragment);
위 코드에서는 `$fragment->append($node1)` 부분에서 `$node1` 노드가 `$node2` 노드 앞에 추가되는 것을 볼 수 있습니다. 이 순서가 항상 유지되는 것은 아니라고 합니다. `$fragment->appendChild($node1)`처럼 `$node1` 노드를 `$fragment`의 자식 노드로 추가할 수도 있습니다.
이러한 경우 `$fragment->append($node1)`와 `$fragment->appendChild($node1)`의 차이점은 다음과 같습니다.
- `$fragment->append($node1)`은 노드를 추가한 순서대로 노드를 추가합니다. 예를 들어, `$fragment->append($node1)`과 `$fragment->append($node2)`를 사용하면 `$node1` 노드가 `$node2` 노드 앞에 추가됩니다.
- `$fragment->appendChild($node1)`은 `$fragment`의 자식 노드로 노드를 추가합니다. 예를 들어, `$fragment->appendChild($node1)`과 `$fragment->appendChild($node2)`를 사용하면 `$node1` 노드가 `$node2` 노드 앞에 추가되지 않습니다.
결론적으로, `$fragment->append($node1)`은 노드를 추가한 순서대로 노드를 추가하는 반면, `$fragment->appendChild($node1)`은 `$fragment`의 자식 노드로 노드를 추가합니다.
2025-05-26 08:37