News Feed
Sections




News Archive
Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Cal Evans:
The PHP CachingIterator
December 20, 2013 @ 10:19:29

In this new post to his site Cal Evans shares an interesting and seldom mentioned part of the SPL in PHP, the CachingIterator, and an interesting behavior he found with its use.

In the course of writing my next book, "Iterating PHP Iterators", I found something very interesting. I have a short chapter on the CachingIterator. One of the flags in the CachingIterator is FULL_CACHE. It was during my experiments with that, that I found…an anomaly.

He includes a snippet of code showing the behavior that does work, just not exactly as expected. He found that to have the values correctly cached, he had to loop through the entire iterator before trying to use it. He also answers the "just rewind() the iterator" comments with another code snippet showing it with the same behavior as before. His final example is one that does work as expected, unsetting the correct index and replacing the value as requested.

So today I learned, don't use the FULL_CACHE flag on the CachingIterator. I am not sure what the FULL_CACHE flag is supposed to do, but it doesn't seem to do anything useful at the moment. Also, it can screw things up for you.
0 comments voice your opinion now!
cachingiterator behavior fullcache spl example

Link: http://blog.calevans.com/2013/12/19/the-php-cachingiterator/

blog comments powered by Disqus

Similar Posts

Zend Developer Zone: Refactoring PHP Code

Johannes Schluter's Blog: DTraceing around

Sean Coates' Blog: PHP Pie?

Kevin Schroeder's Blog: You want to do WHAT with PHP? Chapter 3

Zend Developer Zone: The Standard PHP Library (SPL)


Community Events





Don't see your event here?
Let us know!


framework wordpress install developer community threedevsandamaybe refactor introduction laravel interview unittest language opinion series release podcast api list code testing

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework