File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes / array_access_002.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 4 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

    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>