# robert@xxxxxxxxxxxxx / 2006-12-20 06:05:29 -0500: > On Wed, 2006-12-20 at 11:49 +0100, Jochem Maas wrote: > > > > > > How about iterators? You can have objects that look like arrays yet they take > > > much less memory: > > > > > > $rs = $db->query($select); # query the db > > > foreach ($rs as $row) { # fetch the row > > > whatever($row); > > > } > > > > ah yes - good catch, I do like iterators for keeping code nice and tight. > > I don't what you guys did in PHP4, but I do the following: > > <?php > > if( $db->query( $query ) ) > { > while( ($row = $db->fetchRow()) ) > { > whatever( $row ); > } > } > > ?> > > I fail to see the need for an iterator. But, I'll grant you, proper > destructor support is nice. There's no need just as there's no need for the while. Both are conveniences. next() is more convenient than the because it's generic. A single implementation can operate on an array, a DirectoryIterator, SPLFileObject or MyDBResultSet. Take a look at the STL[1] to get an idea what a set of generic interfaces can do for you. Short answer: wonders! Oh, and BTW, I do remember those days of painfully boring if (!operation()) { return some_error_indication; } whatever(); What we do in PHP 5 is use airbags and safety belts: operation(); // throws on errors, taken care of by the caller whatever(); BTW, fetchRow() is (IMO) better than next() *if used in while()* because the code reads more naturally. foreach ($rs as $row) IMO wins over while($row = $rs->fetchRow()) although this would win my vote: foreach ($row in $rs) // pseudocode [1] http://www.sgi.com/tech/stl/ -- How many Vietnam vets does it take to screw in a light bulb? You don't know, man. You don't KNOW. Cause you weren't THERE. http://bash.org/?255991 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php