#32923 [Opn]: Try and catch strange behaviour

From: Date: Tue, 03 May 2005 09:37:17 +0000
Subject: #32923 [Opn]: Try and catch strange behaviour
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-78559@lists.php.net to get a copy of this message
ID: 32923 User updated by: m dot cappelleri at xaos dot it Reported By: m dot cappelleri at xaos dot it Status: Open Bug Type: Scripting Engine problem Operating System: Debian PHP Version: 5.0.4 New Comment: Sorry, the code example was already a workaround, the code that generates the error is: $this->_images = array(); while ($r = $q->fetchRow()){ try { echo "Adding element ... <br/>"; $this->_images[] = Attachment::Attachment($r['attachment_id'], $r['type_id']); } catch (xException $e) { echo "<b>EX</b>"; } } echo "<pre>Ora lo printo..."; print_r($this->_images); echo "</pre>"; Sorry about that. Previous Comments: ------------------------------------------------------------------------ [2005-05-03 11:34:33] m dot cappelleri at xaos dot it Description: ------------ In a try and catch syntax, when an Exception is thrown a variable strangely disappears. Reproduce code: --------------- $this->_images = array(); while ($r = $q->fetchRow()){ try { $tmp = NULL; echo "Adding element ... <br/>"; $tmp = Attachment::Attachment($r['attachment_id'], $r['type_id']); if (!isNull($tmp)) { $this->_images[] = $tmp; } } catch (xException $e) { echo "<b>EX</b>"; } } echo "<pre>Ora lo printo..."; print_r($this->_images); echo "</pre>"; Expected result: ---------------- $this->_images SHOULD ALWAYS be an array, no matter when or if an exception is thrown. Actual result: -------------- In this case when the exception is thrown in the last cycle the print_r gives a null result. Even more strangely, $this->_images is still there and correctly populated when requested after that (from a different method). ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32923&edit=1

« previous php.bugs (#78559) next »