All pastes #3051231 Raw Edit

Anonymous

public unlisted php v1 · immutable
#3051231 ·published 2015-07-08 15:15 UTC
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);