Annotation of embedaddon/php/tests/classes/array_access_002.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ZE2 ArrayAccess::offsetSet without return
! 3: --FILE--
! 4: <?php
! 5: class object implements ArrayAccess {
! 6:
! 7: public $a = array('1st', 1, 2=>'3rd', '4th'=>4);
! 8:
! 9: function offsetExists($index) {
! 10: echo __METHOD__ . "($index)\n";
! 11: return array_key_exists($index, $this->a);
! 12: }
! 13: function offsetGet($index) {
! 14: echo __METHOD__ . "($index)\n";
! 15: return $this->a[$index];
! 16: }
! 17: function offsetSet($index, $newval) {
! 18: echo __METHOD__ . "($index,$newval)\n";
! 19: /*return*/ $this->a[$index] = $newval;
! 20: }
! 21: function offsetUnset($index) {
! 22: echo __METHOD__ . "($index)\n";
! 23: unset($this->a[$index]);
! 24: }
! 25: }
! 26:
! 27: $obj = new Object;
! 28:
! 29: var_dump($obj->a);
! 30:
! 31: echo "===EMPTY===\n";
! 32: var_dump(empty($obj[0]));
! 33: var_dump(empty($obj[1]));
! 34: var_dump(empty($obj[2]));
! 35: var_dump(empty($obj['4th']));
! 36: var_dump(empty($obj['5th']));
! 37: var_dump(empty($obj[6]));
! 38:
! 39: echo "===isset===\n";
! 40: var_dump(isset($obj[0]));
! 41: var_dump(isset($obj[1]));
! 42: var_dump(isset($obj[2]));
! 43: var_dump(isset($obj['4th']));
! 44: var_dump(isset($obj['5th']));
! 45: var_dump(isset($obj[6]));
! 46:
! 47: echo "===offsetGet===\n";
! 48: var_dump($obj[0]);
! 49: var_dump($obj[1]);
! 50: var_dump($obj[2]);
! 51: var_dump($obj['4th']);
! 52: var_dump($obj['5th']);
! 53: var_dump($obj[6]);
! 54:
! 55: echo "===offsetSet===\n";
! 56: echo "WRITE 1\n";
! 57: $obj[1] = 'Changed 1';
! 58: var_dump($obj[1]);
! 59: echo "WRITE 2\n";
! 60: $obj['4th'] = 'Changed 4th';
! 61: var_dump($obj['4th']);
! 62: echo "WRITE 3\n";
! 63: $obj['5th'] = 'Added 5th';
! 64: var_dump($obj['5th']);
! 65: echo "WRITE 4\n";
! 66: $obj[6] = 'Added 6';
! 67: var_dump($obj[6]);
! 68:
! 69: var_dump($obj[0]);
! 70: var_dump($obj[2]);
! 71:
! 72: $x = $obj[6] = 'changed 6';
! 73: var_dump($obj[6]);
! 74: var_dump($x);
! 75:
! 76: echo "===unset===\n";
! 77: var_dump($obj->a);
! 78: unset($obj[2]);
! 79: unset($obj['4th']);
! 80: unset($obj[7]);
! 81: unset($obj['8th']);
! 82: var_dump($obj->a);
! 83:
! 84: ?>
! 85: ===DONE===
! 86: --EXPECTF--
! 87: array(4) {
! 88: [0]=>
! 89: string(3) "1st"
! 90: [1]=>
! 91: int(1)
! 92: [2]=>
! 93: string(3) "3rd"
! 94: ["4th"]=>
! 95: int(4)
! 96: }
! 97: ===EMPTY===
! 98: object::offsetExists(0)
! 99: object::offsetGet(0)
! 100: bool(false)
! 101: object::offsetExists(1)
! 102: object::offsetGet(1)
! 103: bool(false)
! 104: object::offsetExists(2)
! 105: object::offsetGet(2)
! 106: bool(false)
! 107: object::offsetExists(4th)
! 108: object::offsetGet(4th)
! 109: bool(false)
! 110: object::offsetExists(5th)
! 111: bool(true)
! 112: object::offsetExists(6)
! 113: bool(true)
! 114: ===isset===
! 115: object::offsetExists(0)
! 116: bool(true)
! 117: object::offsetExists(1)
! 118: bool(true)
! 119: object::offsetExists(2)
! 120: bool(true)
! 121: object::offsetExists(4th)
! 122: bool(true)
! 123: object::offsetExists(5th)
! 124: bool(false)
! 125: object::offsetExists(6)
! 126: bool(false)
! 127: ===offsetGet===
! 128: object::offsetGet(0)
! 129: string(3) "1st"
! 130: object::offsetGet(1)
! 131: int(1)
! 132: object::offsetGet(2)
! 133: string(3) "3rd"
! 134: object::offsetGet(4th)
! 135: int(4)
! 136: object::offsetGet(5th)
! 137:
! 138: Notice: Undefined index: 5th in %sarray_access_002.php on line %d
! 139: NULL
! 140: object::offsetGet(6)
! 141:
! 142: Notice: Undefined offset: 6 in %sarray_access_002.php on line %d
! 143: NULL
! 144: ===offsetSet===
! 145: WRITE 1
! 146: object::offsetSet(1,Changed 1)
! 147: object::offsetGet(1)
! 148: string(9) "Changed 1"
! 149: WRITE 2
! 150: object::offsetSet(4th,Changed 4th)
! 151: object::offsetGet(4th)
! 152: string(11) "Changed 4th"
! 153: WRITE 3
! 154: object::offsetSet(5th,Added 5th)
! 155: object::offsetGet(5th)
! 156: string(9) "Added 5th"
! 157: WRITE 4
! 158: object::offsetSet(6,Added 6)
! 159: object::offsetGet(6)
! 160: string(7) "Added 6"
! 161: object::offsetGet(0)
! 162: string(3) "1st"
! 163: object::offsetGet(2)
! 164: string(3) "3rd"
! 165: object::offsetSet(6,changed 6)
! 166: object::offsetGet(6)
! 167: string(9) "changed 6"
! 168: string(9) "changed 6"
! 169: ===unset===
! 170: array(6) {
! 171: [0]=>
! 172: string(3) "1st"
! 173: [1]=>
! 174: string(9) "Changed 1"
! 175: [2]=>
! 176: string(3) "3rd"
! 177: ["4th"]=>
! 178: string(11) "Changed 4th"
! 179: ["5th"]=>
! 180: string(9) "Added 5th"
! 181: [6]=>
! 182: string(9) "changed 6"
! 183: }
! 184: object::offsetUnset(2)
! 185: object::offsetUnset(4th)
! 186: object::offsetUnset(7)
! 187: object::offsetUnset(8th)
! 188: array(4) {
! 189: [0]=>
! 190: string(3) "1st"
! 191: [1]=>
! 192: string(9) "Changed 1"
! 193: ["5th"]=>
! 194: string(9) "Added 5th"
! 195: [6]=>
! 196: string(9) "changed 6"
! 197: }
! 198: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>