3v4l.org

run code in 300+ PHP versions simultaneously
<?php class MyNode extends DOMNode { public function describe() { echo "I am a " . $this->tagName . " node!"; } } class MyElement extends DOMElement {} class MyDocument extends DOMDocument {} $dom = new MyDocument(); $dom->registerNodeClass("DOMNode", "MyNode"); $dom->registerNodeClass("DOMElement", "MyElement"); $dom->loadHTML("<!doctype html><h1>Hello, World!</h1>"); var_dump(get_class($dom->documentElement)); var_dump($dom->documentElement->childNodes->item(0));
Output for 8.3.0 - 8.3.6
string(9) "MyElement" object(MyElement)#4 (27) { ["schemaTypeInfo"]=> NULL ["tagName"]=> string(4) "body" ["className"]=> string(0) "" ["id"]=> string(0) "" ["firstElementChild"]=> string(22) "(object value omitted)" ["lastElementChild"]=> string(22) "(object value omitted)" ["childElementCount"]=> int(1) ["previousElementSibling"]=> NULL ["nextElementSibling"]=> NULL ["nodeName"]=> string(4) "body" ["nodeValue"]=> string(13) "Hello, World!" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["parentElement"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["nextSibling"]=> NULL ["attributes"]=> string(22) "(object value omitted)" ["isConnected"]=> bool(true) ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "body" ["baseURI"]=> NULL ["textContent"]=> string(13) "Hello, World!" }
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18
string(9) "MyElement" object(MyElement)#4 (23) { ["schemaTypeInfo"]=> NULL ["tagName"]=> string(4) "body" ["firstElementChild"]=> string(22) "(object value omitted)" ["lastElementChild"]=> string(22) "(object value omitted)" ["childElementCount"]=> int(1) ["previousElementSibling"]=> NULL ["nextElementSibling"]=> NULL ["nodeName"]=> string(4) "body" ["nodeValue"]=> string(13) "Hello, World!" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["nextSibling"]=> NULL ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "body" ["baseURI"]=> NULL ["textContent"]=> string(13) "Hello, World!" }
Output for 8.0.0 - 8.0.30
string(9) "MyElement" object(MyElement)#4 (23) { ["tagName"]=> string(4) "body" ["schemaTypeInfo"]=> NULL ["firstElementChild"]=> string(22) "(object value omitted)" ["lastElementChild"]=> string(22) "(object value omitted)" ["childElementCount"]=> int(1) ["previousElementSibling"]=> NULL ["nextElementSibling"]=> NULL ["nodeName"]=> string(4) "body" ["nodeValue"]=> string(13) "Hello, World!" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["nextSibling"]=> NULL ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "body" ["baseURI"]=> NULL ["textContent"]=> string(13) "Hello, World!" }
Output for 7.0.20, 7.1.5 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33
string(9) "MyElement" object(MyElement)#4 (18) { ["tagName"]=> string(4) "body" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(4) "body" ["nodeValue"]=> string(13) "Hello, World!" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["nextSibling"]=> NULL ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "body" ["baseURI"]=> NULL ["textContent"]=> string(13) "Hello, World!" }
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.6, 7.1.0
string(9) "MyElement" object(MyElement)#4 (17) { ["tagName"]=> string(4) "body" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(4) "body" ["nodeValue"]=> string(13) "Hello, World!" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "body" ["baseURI"]=> NULL ["textContent"]=> string(13) "Hello, World!" }

preferences:
180.45 ms | 403 KiB | 182 Q