Annotation of embedaddon/php/ext/spl/tests/iterator_044.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: SPL: CachingIterator and offsetGet/Exists using flag FULL_CACHE
! 3: --FILE--
! 4: <?php
! 5:
! 6: class MyFoo
! 7: {
! 8: function __toString()
! 9: {
! 10: return 'foo';
! 11: }
! 12: }
! 13:
! 14: class MyCachingIterator extends CachingIterator
! 15: {
! 16: function __construct(Iterator $it, $flags = 0)
! 17: {
! 18: parent::__construct($it, $flags);
! 19: }
! 20:
! 21: function test($ar)
! 22: {
! 23: foreach($ar as $k => $v)
! 24: {
! 25: echo "===$k===\n";
! 26: var_dump($v);
! 27: var_dump($this->offsetExists($v));
! 28: var_dump($this->offsetGet($v));
! 29: }
! 30: }
! 31: }
! 32:
! 33: $it = new MyCachingIterator(new ArrayIterator(array(0, 'foo'=>1, 2, 'bar'=>3, 4)));
! 34:
! 35: try
! 36: {
! 37: var_dump($it->offsetExists(0));
! 38: }
! 39: catch(Exception $e)
! 40: {
! 41: echo "Exception: " . $e->getMessage() . "\n";
! 42: }
! 43:
! 44: try
! 45: {
! 46: var_dump($it->offsetGet(0));
! 47: }
! 48: catch(Exception $e)
! 49: {
! 50: echo "Exception: " . $e->getMessage() . "\n";
! 51: }
! 52:
! 53: $it = new MyCachingIterator(new ArrayIterator(array(0, 'foo'=>1, 2, 'bar'=>3, 4)), CachingIterator::FULL_CACHE);
! 54:
! 55: var_dump($it->offsetExists());
! 56: var_dump($it->offsetGet());
! 57:
! 58: $checks = array(0, new stdClass, new MyFoo, NULL, 2, 'foo', 3);
! 59:
! 60: $it->test($checks);
! 61:
! 62: echo "===FILL===\n";
! 63:
! 64: foreach($it as $v); // read all into cache
! 65:
! 66: $it->test($checks);
! 67:
! 68: ?>
! 69: ===DONE===
! 70: <?php exit(0); ?>
! 71: --EXPECTF--
! 72: Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
! 73: Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
! 74:
! 75: Warning: CachingIterator::offsetExists() expects exactly 1 parameter, 0 given in %siterator_044.php on line %d
! 76: NULL
! 77:
! 78: Warning: CachingIterator::offsetGet() expects exactly 1 parameter, 0 given in %siterator_044.php on line %d
! 79: NULL
! 80: ===0===
! 81: int(0)
! 82: bool(false)
! 83:
! 84: Notice: Undefined index: 0 in %siterator_044.php on line %d
! 85: NULL
! 86: ===1===
! 87: object(stdClass)#%d (0) {
! 88: }
! 89:
! 90: Warning: CachingIterator::offsetExists() expects parameter 1 to be string, object given in %siterator_044.php on line %d
! 91: NULL
! 92:
! 93: Warning: CachingIterator::offsetGet() expects parameter 1 to be string, object given in %siterator_044.php on line %d
! 94: NULL
! 95: ===2===
! 96: object(MyFoo)#%d (0) {
! 97: }
! 98: bool(false)
! 99:
! 100: Notice: Undefined index: foo in %siterator_044.php on line %d
! 101: NULL
! 102: ===3===
! 103: NULL
! 104: bool(false)
! 105:
! 106: Notice: Undefined index: in %siterator_044.php on line %d
! 107: NULL
! 108: ===4===
! 109: int(2)
! 110: bool(false)
! 111:
! 112: Notice: Undefined index: 2 in %siterator_044.php on line %d
! 113: NULL
! 114: ===5===
! 115: string(3) "foo"
! 116: bool(false)
! 117:
! 118: Notice: Undefined index: foo in %siterator_044.php on line %d
! 119: NULL
! 120: ===6===
! 121: int(3)
! 122: bool(false)
! 123:
! 124: Notice: Undefined index: 3 in %siterator_044.php on line %d
! 125: NULL
! 126: ===FILL===
! 127: ===0===
! 128: int(0)
! 129: bool(true)
! 130: int(0)
! 131: ===1===
! 132: object(stdClass)#1 (0) {
! 133: }
! 134:
! 135: Warning: CachingIterator::offsetExists() expects parameter 1 to be string, object given in %siterator_044.php on line %d
! 136: NULL
! 137:
! 138: Warning: CachingIterator::offsetGet() expects parameter 1 to be string, object given in %siterator_044.php on line %d
! 139: NULL
! 140: ===2===
! 141: object(MyFoo)#2 (0) {
! 142: }
! 143: bool(true)
! 144: int(1)
! 145: ===3===
! 146: NULL
! 147: bool(false)
! 148:
! 149: Notice: Undefined index: in %siterator_044.php on line %d
! 150: NULL
! 151: ===4===
! 152: int(2)
! 153: bool(true)
! 154: int(4)
! 155: ===5===
! 156: string(3) "foo"
! 157: bool(true)
! 158: int(1)
! 159: ===6===
! 160: int(3)
! 161: bool(false)
! 162:
! 163: Notice: Undefined index: 3 in %siterator_044.php on line %d
! 164: NULL
! 165: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>