Annotation of embedaddon/php/ext/standard/tests/array/array_unshift_object.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test array_unshift() function : passing object for 'var' argument
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : int array_unshift(array $array, mixed $var [, mixed ...])
! 6: * Description: Pushes elements onto the beginning of the array
! 7: * Source code: ext/standard/array.c
! 8: */
! 9:
! 10: /*
! 11: * Testing the functionality of array_unshift() by passing
! 12: * an object to the $var argument
! 13: */
! 14:
! 15: echo "*** Testing array_unshift() : Passing object to \$var argument ***\n";
! 16:
! 17: // simple class with a variable and method
! 18: class SimpleClass
! 19: {
! 20: public $var1 = 1;
! 21: public function fun1() {
! 22: return $var1;
! 23: }
! 24: }
! 25:
! 26: // class without members
! 27: class EmptyClass
! 28: {
! 29: }
! 30:
! 31: // abstract class
! 32: abstract class AbstractClass
! 33: {
! 34: protected $var2 = 5;
! 35: abstract function emptyFunction();
! 36: }
! 37:
! 38: // class deriving the above abstract class
! 39: class ChildClass extends AbstractClass
! 40: {
! 41: private $var3;
! 42: public function emptyFunction() {
! 43: echo "defined in child";
! 44: }
! 45: }
! 46:
! 47: // class with final method
! 48: class FinalClass
! 49: {
! 50: private $var4;
! 51: final function finalMethod() {
! 52: echo "This function can't be overloaded";
! 53: }
! 54: }
! 55:
! 56: // class with static members
! 57: class StaticClass
! 58: {
! 59: static $var5 = 2;
! 60: public static function staticMethod() {
! 61: echo "This is a static method";
! 62: }
! 63: }
! 64:
! 65: // array to be passed to $array argument
! 66: $array = array('f' => "first", "s" => 'second', 1, 2.222);
! 67:
! 68: // array containing different types of objects as elements
! 69: $vars = array(
! 70: new SimpleClass(),
! 71: new EmptyClass(),
! 72: new ChildClass(),
! 73: new FinalClass(),
! 74: new StaticClass()
! 75: );
! 76:
! 77: // loop through the various elements of $arrays to check the functionality of array_unshift
! 78: $iterator = 1;
! 79: foreach($vars as $var) {
! 80: echo "-- Iteration $iterator --\n";
! 81:
! 82: /* with default argument */
! 83: // returns element count in the resulting array after arguments are pushed to
! 84: // beginning of the given array
! 85: $temp_array = $array;
! 86: var_dump( array_unshift($temp_array, $var) );
! 87:
! 88: // dump the resulting array
! 89: var_dump($temp_array);
! 90:
! 91: /* with optional arguments */
! 92: // returns element count in the resulting array after arguments are pushed to
! 93: // beginning of the given array
! 94: $temp_array = $array;
! 95: var_dump( array_unshift($temp_array, $var, "hello", 'world') );
! 96:
! 97: // dump the resulting array
! 98: var_dump($temp_array);
! 99: $iterator++;
! 100: }
! 101:
! 102: echo "Done";
! 103: ?>
! 104: --EXPECTF--
! 105: *** Testing array_unshift() : Passing object to $var argument ***
! 106: -- Iteration 1 --
! 107: int(5)
! 108: array(5) {
! 109: [0]=>
! 110: object(SimpleClass)#%d (1) {
! 111: ["var1"]=>
! 112: int(1)
! 113: }
! 114: ["f"]=>
! 115: string(5) "first"
! 116: ["s"]=>
! 117: string(6) "second"
! 118: [1]=>
! 119: int(1)
! 120: [2]=>
! 121: float(2.222)
! 122: }
! 123: int(7)
! 124: array(7) {
! 125: [0]=>
! 126: object(SimpleClass)#%d (1) {
! 127: ["var1"]=>
! 128: int(1)
! 129: }
! 130: [1]=>
! 131: string(5) "hello"
! 132: [2]=>
! 133: string(5) "world"
! 134: ["f"]=>
! 135: string(5) "first"
! 136: ["s"]=>
! 137: string(6) "second"
! 138: [3]=>
! 139: int(1)
! 140: [4]=>
! 141: float(2.222)
! 142: }
! 143: -- Iteration 2 --
! 144: int(5)
! 145: array(5) {
! 146: [0]=>
! 147: object(EmptyClass)#%d (0) {
! 148: }
! 149: ["f"]=>
! 150: string(5) "first"
! 151: ["s"]=>
! 152: string(6) "second"
! 153: [1]=>
! 154: int(1)
! 155: [2]=>
! 156: float(2.222)
! 157: }
! 158: int(7)
! 159: array(7) {
! 160: [0]=>
! 161: object(EmptyClass)#%d (0) {
! 162: }
! 163: [1]=>
! 164: string(5) "hello"
! 165: [2]=>
! 166: string(5) "world"
! 167: ["f"]=>
! 168: string(5) "first"
! 169: ["s"]=>
! 170: string(6) "second"
! 171: [3]=>
! 172: int(1)
! 173: [4]=>
! 174: float(2.222)
! 175: }
! 176: -- Iteration 3 --
! 177: int(5)
! 178: array(5) {
! 179: [0]=>
! 180: object(ChildClass)#%d (2) {
! 181: ["var3":"ChildClass":private]=>
! 182: NULL
! 183: ["var2":protected]=>
! 184: int(5)
! 185: }
! 186: ["f"]=>
! 187: string(5) "first"
! 188: ["s"]=>
! 189: string(6) "second"
! 190: [1]=>
! 191: int(1)
! 192: [2]=>
! 193: float(2.222)
! 194: }
! 195: int(7)
! 196: array(7) {
! 197: [0]=>
! 198: object(ChildClass)#%d (2) {
! 199: ["var3":"ChildClass":private]=>
! 200: NULL
! 201: ["var2":protected]=>
! 202: int(5)
! 203: }
! 204: [1]=>
! 205: string(5) "hello"
! 206: [2]=>
! 207: string(5) "world"
! 208: ["f"]=>
! 209: string(5) "first"
! 210: ["s"]=>
! 211: string(6) "second"
! 212: [3]=>
! 213: int(1)
! 214: [4]=>
! 215: float(2.222)
! 216: }
! 217: -- Iteration 4 --
! 218: int(5)
! 219: array(5) {
! 220: [0]=>
! 221: object(FinalClass)#%d (1) {
! 222: ["var4":"FinalClass":private]=>
! 223: NULL
! 224: }
! 225: ["f"]=>
! 226: string(5) "first"
! 227: ["s"]=>
! 228: string(6) "second"
! 229: [1]=>
! 230: int(1)
! 231: [2]=>
! 232: float(2.222)
! 233: }
! 234: int(7)
! 235: array(7) {
! 236: [0]=>
! 237: object(FinalClass)#%d (1) {
! 238: ["var4":"FinalClass":private]=>
! 239: NULL
! 240: }
! 241: [1]=>
! 242: string(5) "hello"
! 243: [2]=>
! 244: string(5) "world"
! 245: ["f"]=>
! 246: string(5) "first"
! 247: ["s"]=>
! 248: string(6) "second"
! 249: [3]=>
! 250: int(1)
! 251: [4]=>
! 252: float(2.222)
! 253: }
! 254: -- Iteration 5 --
! 255: int(5)
! 256: array(5) {
! 257: [0]=>
! 258: object(StaticClass)#%d (0) {
! 259: }
! 260: ["f"]=>
! 261: string(5) "first"
! 262: ["s"]=>
! 263: string(6) "second"
! 264: [1]=>
! 265: int(1)
! 266: [2]=>
! 267: float(2.222)
! 268: }
! 269: int(7)
! 270: array(7) {
! 271: [0]=>
! 272: object(StaticClass)#%d (0) {
! 273: }
! 274: [1]=>
! 275: string(5) "hello"
! 276: [2]=>
! 277: string(5) "world"
! 278: ["f"]=>
! 279: string(5) "first"
! 280: ["s"]=>
! 281: string(6) "second"
! 282: [3]=>
! 283: int(1)
! 284: [4]=>
! 285: float(2.222)
! 286: }
! 287: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>