Closed
Description
Description
The following code:
<?php
$doc = \Dom\HTMLDocument::createEmpty();
$ele1 = $doc->createElement('div');
$ele1->classList->add('foo');
$ele2 = clone $ele1;
$ele2->classList->add('bar');
echo "Element1 class: " . $ele1->getAttribute('class');
echo "\n";
echo "Element2 class: " . $ele2->getAttribute('class');
Resulted in this output:
Element1 class: foo bar
Element2 class: foo
But I expected this output instead:
Element1 class: foo
Element2 class: foo bar
3v4l.org: https://3v4l.org/eaosZ#v8.4.7
If try to clone classList
will raise an error:
Fatal error: Uncaught Error: Trying to clone an uncloneable object of class Dom\TokenList
But $ele2 = $ele->cloneNode(true)
works.
PHP Version
PHP 8.4.7 (cli) (built: May 6 2025 14:14:22) (NTS Visual C++ 2022 x64)
Copyright (c) The PHP Group
Zend Engine v4.4.7, Copyright (c) Zend Technologie
Operating System
Windows 11 and 3v4l.org