rendered paste body<?phpclass MyDOMDocument extends DOMDocument { public $some_text = 'foobar';}class TestClass { public $document;}function generate_my_dom_document() { return new MyDOMDocument();}$doc1 = new MyDOMDocument();$xpath1 = new DOMXPath($doc1); # correct behavior: reports 'MyDOMDocument', the derived classecho get_class($xpath1->document), "\n"; # corret behavior: reports 'string(6) "foobar"'var_dump($xpath1->document->some_text);$doc2 = new MyDOMDocument();$test2 = new TestClass();$test2->document = $doc2;unset($doc2); # correct behavior: reports 'MyDOMDocument', the derived classecho get_class($test2->document), "\n"; # corret behavior: reports 'string(6) "foobar"'var_dump($test2->document->some_text);$xpath3 = new DOMXPath(generate_my_dom_document()); # buggy behavior: reports 'DOMDocument', the base classecho get_class($xpath3->document), "\n"; # buggy behavior: reports 'Undefined property'var_dump($xpath3->document->some_text);$doc4 = new MyDOMDocument();$xpath4 = new DOMXPath($doc4);unset($doc4); # buggy behavior: reports 'DOMDocument', the base classecho get_class($xpath4->document), "\n"; # buggy behavior: reports 'Undefined property'var_dump($xpath4->document->some_text);