@ 2016-02-02T14:37:09Z <?php
class MyNode extends DOMNode {
public function describe() {
echo "I am a " . $this->tagName . " node!";
}
}
class MyElement extends DOMElement {}
class MyDocument extends DOMDocument {}
class MyNodeList extends DOMNodeList {} // this class is unused.
$dom = new MyDocument();
$dom->registerNodeClass("DOMNode", "MyNode");
$dom->registerNodeClass("DOMElement", "MyElement");
// Can't do this, because DOMNodeList doesn't inherit from DOMNode.
// $dom->registerNodeClass("DOMNodeList", "MyNodeList");
$dom->loadHTML("<!doctype html><h1>Hello, World!</h1>");
// The items within the DOMNodeList are MyElement objects...
var_dump($dom->documentElement->childNodes->item(0));
// ...but why can't I use a MyNodeList here?
var_dump($dom->documentElement->childNodes);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.3.0 - 8.3.4 , 8.3.6 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!"
}
object(DOMNodeList)#3 (1) {
["length"]=>
int(1)
}
Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
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!"
}
object(DOMNodeList)#3 (1) {
["length"]=>
int(1)
}
Output for 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 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!"
}
object(DOMNodeList)#3 (1) {
["length"]=>
int(1)
}
Output for 8.0.0 - 8.0.30 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!"
}
object(DOMNodeList)#3 (1) {
["length"]=>
int(1)
}
Output for 7.0.16 - 7.0.33 , 7.1.2 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 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!"
}
object(DOMNodeList)#3 (1) {
["length"]=>
int(1)
}
Output for 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.15 , 7.1.0 - 7.1.1 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!"
}
object(DOMNodeList)#3 (1) {
["length"]=>
int(1)
}
preferences:dark mode live preview
240.05 ms | 404 KiB | 330 Q