summaryrefslogtreecommitdiff
path: root/ext/spl/examples/cachingiterator.inc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/examples/cachingiterator.inc')
-rw-r--r--ext/spl/examples/cachingiterator.inc81
1 files changed, 0 insertions, 81 deletions
diff --git a/ext/spl/examples/cachingiterator.inc b/ext/spl/examples/cachingiterator.inc
deleted file mode 100644
index d828b88e7b..0000000000
--- a/ext/spl/examples/cachingiterator.inc
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-define('CIT_CALL_TOSTRING', 1);
-define('CIT_CATCH_GET_CHILD', 2);
-
-class CachingIterator
-{
- protected $it;
- protected $current;
- protected $key;
- protected $more;
- protected $strValue;
- protected $getStrVal;
-
- function __construct(Iterator $it, $flags = CIT_CALL_TOSTRING)
- {
- $this->it = $it;
- $this->flags = $flags & (CIT_CALL_TOSTRING|CIT_CATCH_GET_CHILD);
- }
-
- function rewind()
- {
- $this->it->rewind();
- $this->next();
- }
-
- function next()
- {
- if ($this->more = $this->it->hasMore()) {
- $this->current = $this->it->current();
- $this->key = $this->it->key();
- if ($this->flags & CIT_CALL_TOSTRING) {
- if (is_object($this->current)) {
- $this->strValue = $this->current->__toString();
- } else {
- $this->strValue = (string)$this->current;
- }
- }
- } else {
- $this->current = NULL;
- $this->key = NULL;
- $this->strValue = NULL;
- }
- $this->it->next();
- }
-
- function hasMore()
- {
- return $this->more;
- }
-
- function hasNext()
- {
- return $this->it->hasMore();
- }
-
- function current()
- {
- return $this->current;
- }
-
- function key()
- {
- return $this->key;
- }
-
- function __call($func, $params)
- {
- return call_user_func_array(array($this->it, $func), $params);
- }
-
- function __toString()
- {
- if (!$this->flags & CIT_CALL_TOSTRING) {
- throw new exception('CachingIterator does not fetch string value (see CachingIterator::__construct)');
- }
- return $this->strValue;
- }
-}
-
-?> \ No newline at end of file