ID:               36600
 Updated by:       [EMAIL PROTECTED]
 Reported By:      georg at howen dot de
-Status:           Open
+Status:           Bogus
 Bug Type:         DOM XML related
 Operating System: Linux, Win XP
 PHP Version:      5.1.2
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

loadXML() is not a true static function. It is just allowed to be
called statically. When called statically within a method of an
instantiated DOMDocument object it acts as if the method had been
called directly from the object itself rather than statically.
use the syntax as demonstrated by the behavior of $internal_doc1
creation in this case.


Previous Comments:
------------------------------------------------------------------------

[2006-03-03 11:42:24] georg at howen dot de

Changed status back to open since I believe that 

$internal_doc2 = DOMDocument::loadXML($xml);

is a static call that does not return what it should. 

If I didn't get something right I am really sorry, but I still believe
this is a bug.

------------------------------------------------------------------------

[2006-03-03 10:38:40] georg at howen dot de

Hi,

I thought I was aware of that. But isn't

$internal_doc2 = DOMDocument::loadXML($xml);

a static call to DOMDocument? That's the one that works fine _outside_
of a DOMDocument but not inside a class that extends DOMDocument.

------------------------------------------------------------------------

[2006-03-03 10:20:33] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

DOMDocument::loadXML will return DOMDocument only when called staticly

------------------------------------------------------------------------

[2006-03-03 09:55:29] georg at howen dot de

Description:
------------
If you extend DOMDocument and try to use DOMDocument::loadXML() on a
new DOMDocument within the extended class, this function will return
true instead of a new instance of DOMDocument.

Reproduce code:
---------------
<?php

class xDOMDocument extends DOMDocument {

        public function newDom($xml) {

                $internal_doc1 = new DOMDocument;
                $internal_doc1->loadXML($xml);
                print_r($internal_doc1);

                $internal_doc2 = DOMDocument::loadXML($xml);
                print_r($internal_doc2);

        }
}

$xml = '<def>Test</def>';
$dom = new xDOMDocument();
$dom->newDom($xml);


Expected result:
----------------
DOMDocument Object
(
)
DOMDocument Object
(
)

Actual result:
--------------
DOMDocument Object
(
)
1


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=36600&edit=1

Reply via email to