#28473 [NEW]: DOM object custom variables get lost

From: Date: Fri, 21 May 2004 12:42:00 +0000
Subject: #28473 [NEW]: DOM object custom variables get lost
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-59841@lists.php.net to get a copy of this message
From: bart at mediawave dot nl Operating system: Windows XP PHP version: 5.0.0RC2 PHP Bug Type: DOM XML related Bug description: DOM object custom variables get lost Description: ------------ Setting custom variables in DOM objects like: $domNode->customVar = 'myValue'; Are inconsistently lost when working with a dom. Reproduce code: --------------- <?php class myclass { function run() { $xp = new domxpath($this->dom); $widths = $xp->query('//td/@width'); foreach ($widths as $width) { echo $this->name.' 1: width->myVar value:'.$width->myVar.'<br>'; $width->myVar = '1'; } $tds = $this->dom->getElementsByTagName('td'); foreach ($tds as $td) { echo $this->name.' 2: td->myVar value:'.$td->myVar.'<br>'; $td->myVar = '1'; } echo '<br>'; $tds = $this->dom->getElementsByTagName('td'); foreach ($tds as $td) { if ($width = $td->getAttributeNode('width')) { echo $this->name.' 3: width->myVar value:'.$width->myVar.'<br>'; $width->myVar = '2'; } echo $this->name.' 4: td->myVar value:'.$td->myVar.'<br>'; $td->myVar = '2'; } echo '<br>'; } } $xml = '<root> <tr><td width="40">hello</td><td width="40">world</td></tr> <tr><td>Just one TD</td></tr> <tr><td>TD with <b>mixed</b> <i>content</i></td></tr> </root>'; $dom = new DomDocument; $dom->loadXML($xml); $firstInstance = new myclass; $firstInstance->name = 'firstInstance'; $firstInstance->dom = $dom; $firstInstance->run(); $secondInstance = new myclass; $secondInstance->name = 'secondInstance'; $secondInstance->dom = $firstInstance->dom; $secondInstance->run(); ?> Expected result: ---------------- firstInstance 1: width->myVar value: firstInstance 1: width->myVar value: firstInstance 2: td->myVar value: firstInstance 2: td->myVar value: firstInstance 2: td->myVar value: firstInstance 2: td->myVar value: firstInstance 3: width->myVar value:1 firstInstance 4: td->myVar value:1 firstInstance 3: width->myVar value:1 firstInstance 4: td->myVar value:1 firstInstance 4: td->myVar value:1 firstInstance 4: td->myVar value:1 secondInstance 1: width->myVar value:2 secondInstance 1: width->myVar value:2 secondInstance 2: td->myVar value:2 secondInstance 2: td->myVar value:2 secondInstance 2: td->myVar value:2 secondInstance 2: td->myVar value:2 secondInstance 3: width->myVar value:1 secondInstance 4: td->myVar value:1 secondInstance 3: width->myVar value:1 secondInstance 4: td->myVar value:1 secondInstance 4: td->myVar value:1 secondInstance 4: td->myVar value:1 Actual result: -------------- firstInstance 1: width->myVar value: firstInstance 1: width->myVar value: firstInstance 2: td->myVar value: firstInstance 2: td->myVar value: firstInstance 2: td->myVar value: firstInstance 2: td->myVar value: firstInstance 3: width->myVar value:1 firstInstance 4: td->myVar value: firstInstance 3: width->myVar value:1 firstInstance 4: td->myVar value: firstInstance 4: td->myVar value: firstInstance 4: td->myVar value: secondInstance 1: width->myVar value: secondInstance 1: width->myVar value: secondInstance 2: td->myVar value: secondInstance 2: td->myVar value: secondInstance 2: td->myVar value: secondInstance 2: td->myVar value: secondInstance 3: width->myVar value:1 secondInstance 4: td->myVar value: secondInstance 3: width->myVar value:1 secondInstance 4: td->myVar value: secondInstance 4: td->myVar value: secondInstance 4: td->myVar value: -- Edit bug report at http://bugs.php.net/?id=28473&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=28473&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=28473&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=28473&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=28473&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=28473&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=28473&r=needscript Try newer version: http://bugs.php.net/fix.php?id=28473&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=28473&r=support Expected behavior: http://bugs.php.net/fix.php?id=28473&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=28473&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=28473&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=28473&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=28473&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=28473&r=dst IIS Stability: http://bugs.php.net/fix.php?id=28473&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=28473&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=28473&r=float

« previous php.bugs (#59841) next »