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>