Annotation of embedaddon/php/ext/standard/tests/array/array_fill_object.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test array_fill() function : usage variations - various object values for 'val' argument
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_fill(int $start_key, int $num, mixed $val)
                      6:  * Description: Create an array containing num elements starting with index start_key each initialized to val 
                      7:  * Source code: ext/standard/array.c
                      8:  */
                      9: 
                     10: /*
                     11:  * testing array_fill() by passing various  object values for 'val' argument
                     12:  */
                     13: 
                     14: echo "*** Testing array_fill() : usage variations ***\n";
                     15: 
                     16: // Initialise function arguments not being substituted 
                     17: $start_key = 0;
                     18: $num = 2;
                     19: 
                     20: // class without a member
                     21: class Test
                     22: {
                     23: }
                     24: 
                     25: //class with public member, static member , constant and consturctor to initialize the public member 
                     26: class Test1
                     27: {
                     28:   const test1_constant = "test1";
                     29:   public static $test1_static = 0;
                     30:   public $member1;
                     31:   var $var1 = 30;
                     32:   var $var2;
                     33: 
                     34:   function __construct($value1 , $value2)
                     35:   {
                     36:     $this->member1 = $value1;
                     37:     $this->var2 = $value2;
                     38:   }
                     39: }
                     40: 
                     41: // child class which inherits parent class test1
                     42: class Child_test1 extends Test1
                     43: {
                     44:   public $member2;
                     45: 
                     46:   function __construct($value1 , $value2 , $value3)
                     47:   {
                     48:     parent::__construct($value1 , $value2);
                     49:     $this->member2 = $value3;
                     50:   }
                     51: }
                     52: 
                     53: //class with private member, static member, constant and constructor to initialize the private member
                     54: class Test2
                     55: {
                     56:   const test2_constant = "test2";
                     57:   public static $test2_static = 0;
                     58:   private $member1;
                     59:   var $var1 = 30;
                     60:   var $var2;
                     61: 
                     62:   function __construct($value1 , $value2)
                     63:   {
                     64:     $this->member1 = $value1;
                     65:     $this->var2 = $value2;
                     66:   }
                     67: }
                     68: 
                     69: // child class which inherits parent class test2
                     70: class Child_test2 extends Test2
                     71: {
                     72:   private $member1;
                     73: 
                     74:   function __construct($value1 , $value2 , $value3)
                     75:   {
                     76:     parent::__construct($value1 , $value2);
                     77:     $this->member1 = $value3;
                     78:   }
                     79: }
                     80: 
                     81: // class with protected member, static member, constant and consturctor to initialize the protected member 
                     82: class Test3
                     83: {
                     84:   const test3_constant = "test3";
                     85:   public static $test3_static = 0;
                     86:   protected $member1;
                     87:   var $var1 = 30;
                     88:   var $var2; 
                     89: 
                     90:   function __construct($value1 , $value2)
                     91:   {
                     92:      $this->member1 = $value1;
                     93:      $this->var2 = $value2;
                     94:   }
                     95: }
                     96: 
                     97: // child class which inherits parent class test3
                     98: class Child_test3 extends Test3
                     99: {
                    100:   protected $member1;
                    101: 
                    102:   function __construct($value1 , $value2 , $value3)
                    103:   {
                    104:     parent::__construct($value1 , $value2);
                    105:     $this->member1 = $value3;
                    106:   }
                    107: }
                    108: 
                    109: // class with public, private, protected members, static, constant members and constructor to initialize all the members
                    110: class Test4
                    111: {
                    112:   const test4_constant = "test4";
                    113:   public static $test4_static = 0;
                    114:   public $member1;
                    115:   private $member2;
                    116:   protected $member3;
                    117: 
                    118:   function __construct($value1 , $value2 , $value3)
                    119:   {
                    120:     $this->member1 = $value1;
                    121:     $this->member2 = $value2;
                    122:     $this->member3 = $value3;
                    123:   }
                    124: }
                    125: 
                    126: // child class which inherits parent class test4
                    127: class Child_test4 extends Test4
                    128: {
                    129:   var $var1;
                    130:   
                    131:   function __construct($value1 , $value2 , $value3 , $value4)
                    132:   {
                    133:     parent::__construct($value1 , $value2 , $value3);
                    134:     $this->var1 = $value4;
                    135:   }
                    136: }
                    137: 
                    138: // abstract class with public, private, protected members 
                    139: abstract class AbstractClass
                    140: {
                    141:   public $member1;
                    142:   private $member2;
                    143:   protected $member3;
                    144:   var $var1 = 30;
                    145:   
                    146:   abstract protected function display();
                    147: }
                    148: 
                    149: // implement abstract 'AbstractClass' class
                    150: class ConcreteClass1 extends AbstractClass
                    151: {
                    152:   protected function display()
                    153:   {
                    154:     echo "class name is ConcreteClass1 \n";
                    155:   }
                    156: }
                    157: 
                    158: 
                    159: // declarationn of the interface 'iTemplate'
                    160: interface iTemplate
                    161: {
                    162:   public function display();
                    163: }
                    164: 
                    165: // implement the interface 'iTemplate'
                    166: class Template1 implements iTemplate
                    167: {
                    168:   public function display()
                    169:   {
                    170:     echo "class name is Template1\n";
                    171:   }
                    172: }
                    173: 
                    174: //array of object values for 'val' argument
                    175: $objects = array(
                    176:   
                    177:   /* 1  */  new Test(),
                    178:             new Test1(100 , 101),
                    179:             new Child_test1(100 , 101 , 102),
                    180:             new Test2(100 , 101),
                    181:   /* 5  */  new Child_test2(100 , 101 , 102),
                    182:             new Test3(100 , 101),
                    183:             new Child_test3(100 , 101 , 102),
                    184:             new Test4( 100 , 101 , 102),
                    185:             new Child_test4(100 , 101 , 102 , 103),
                    186:             new ConcreteClass1(),
                    187:   /* 11 */  new Template1()
                    188: );
                    189: 
                    190: // loop through each element of the array for 'val' argument 
                    191: // check the working of array_fill()
                    192: echo "--- Testing array_fill() with different object values for 'val' argument ---\n";
                    193: $counter = 1;
                    194: for($index = 0; $index < count($objects); $index ++)
                    195: {
                    196:   echo "-- Iteration $counter --\n";
                    197:   $val = $objects[$index];
                    198: 
                    199:   var_dump( array_fill($start_key,$num,$val) );
                    200: 
                    201:   $counter++;
                    202: }
                    203: 
                    204: echo "Done";
                    205: ?>
                    206: --EXPECTF--
                    207: *** Testing array_fill() : usage variations ***
                    208: --- Testing array_fill() with different object values for 'val' argument ---
                    209: -- Iteration 1 --
                    210: array(2) {
                    211:   [0]=>
                    212:   object(Test)#%d (0) {
                    213:   }
                    214:   [1]=>
                    215:   object(Test)#%d (0) {
                    216:   }
                    217: }
                    218: -- Iteration 2 --
                    219: array(2) {
                    220:   [0]=>
                    221:   object(Test1)#%d (3) {
                    222:     ["member1"]=>
                    223:     int(100)
                    224:     ["var1"]=>
                    225:     int(30)
                    226:     ["var2"]=>
                    227:     int(101)
                    228:   }
                    229:   [1]=>
                    230:   object(Test1)#%d (3) {
                    231:     ["member1"]=>
                    232:     int(100)
                    233:     ["var1"]=>
                    234:     int(30)
                    235:     ["var2"]=>
                    236:     int(101)
                    237:   }
                    238: }
                    239: -- Iteration 3 --
                    240: array(2) {
                    241:   [0]=>
                    242:   object(Child_test1)#%d (4) {
                    243:     ["member2"]=>
                    244:     int(102)
                    245:     ["member1"]=>
                    246:     int(100)
                    247:     ["var1"]=>
                    248:     int(30)
                    249:     ["var2"]=>
                    250:     int(101)
                    251:   }
                    252:   [1]=>
                    253:   object(Child_test1)#%d (4) {
                    254:     ["member2"]=>
                    255:     int(102)
                    256:     ["member1"]=>
                    257:     int(100)
                    258:     ["var1"]=>
                    259:     int(30)
                    260:     ["var2"]=>
                    261:     int(101)
                    262:   }
                    263: }
                    264: -- Iteration 4 --
                    265: array(2) {
                    266:   [0]=>
                    267:   object(Test2)#%d (3) {
                    268:     ["member1":"Test2":private]=>
                    269:     int(100)
                    270:     ["var1"]=>
                    271:     int(30)
                    272:     ["var2"]=>
                    273:     int(101)
                    274:   }
                    275:   [1]=>
                    276:   object(Test2)#%d (3) {
                    277:     ["member1":"Test2":private]=>
                    278:     int(100)
                    279:     ["var1"]=>
                    280:     int(30)
                    281:     ["var2"]=>
                    282:     int(101)
                    283:   }
                    284: }
                    285: -- Iteration 5 --
                    286: array(2) {
                    287:   [0]=>
                    288:   object(Child_test2)#%d (4) {
                    289:     ["member1":"Child_test2":private]=>
                    290:     int(102)
                    291:     ["member1":"Test2":private]=>
                    292:     int(100)
                    293:     ["var1"]=>
                    294:     int(30)
                    295:     ["var2"]=>
                    296:     int(101)
                    297:   }
                    298:   [1]=>
                    299:   object(Child_test2)#%d (4) {
                    300:     ["member1":"Child_test2":private]=>
                    301:     int(102)
                    302:     ["member1":"Test2":private]=>
                    303:     int(100)
                    304:     ["var1"]=>
                    305:     int(30)
                    306:     ["var2"]=>
                    307:     int(101)
                    308:   }
                    309: }
                    310: -- Iteration 6 --
                    311: array(2) {
                    312:   [0]=>
                    313:   object(Test3)#%d (3) {
                    314:     ["member1":protected]=>
                    315:     int(100)
                    316:     ["var1"]=>
                    317:     int(30)
                    318:     ["var2"]=>
                    319:     int(101)
                    320:   }
                    321:   [1]=>
                    322:   object(Test3)#%d (3) {
                    323:     ["member1":protected]=>
                    324:     int(100)
                    325:     ["var1"]=>
                    326:     int(30)
                    327:     ["var2"]=>
                    328:     int(101)
                    329:   }
                    330: }
                    331: -- Iteration 7 --
                    332: array(2) {
                    333:   [0]=>
                    334:   object(Child_test3)#%d (3) {
                    335:     ["member1":protected]=>
                    336:     int(102)
                    337:     ["var1"]=>
                    338:     int(30)
                    339:     ["var2"]=>
                    340:     int(101)
                    341:   }
                    342:   [1]=>
                    343:   object(Child_test3)#%d (3) {
                    344:     ["member1":protected]=>
                    345:     int(102)
                    346:     ["var1"]=>
                    347:     int(30)
                    348:     ["var2"]=>
                    349:     int(101)
                    350:   }
                    351: }
                    352: -- Iteration 8 --
                    353: array(2) {
                    354:   [0]=>
                    355:   object(Test4)#%d (3) {
                    356:     ["member1"]=>
                    357:     int(100)
                    358:     ["member2":"Test4":private]=>
                    359:     int(101)
                    360:     ["member3":protected]=>
                    361:     int(102)
                    362:   }
                    363:   [1]=>
                    364:   object(Test4)#%d (3) {
                    365:     ["member1"]=>
                    366:     int(100)
                    367:     ["member2":"Test4":private]=>
                    368:     int(101)
                    369:     ["member3":protected]=>
                    370:     int(102)
                    371:   }
                    372: }
                    373: -- Iteration 9 --
                    374: array(2) {
                    375:   [0]=>
                    376:   object(Child_test4)#%d (4) {
                    377:     ["var1"]=>
                    378:     int(103)
                    379:     ["member1"]=>
                    380:     int(100)
                    381:     ["member2":"Test4":private]=>
                    382:     int(101)
                    383:     ["member3":protected]=>
                    384:     int(102)
                    385:   }
                    386:   [1]=>
                    387:   object(Child_test4)#%d (4) {
                    388:     ["var1"]=>
                    389:     int(103)
                    390:     ["member1"]=>
                    391:     int(100)
                    392:     ["member2":"Test4":private]=>
                    393:     int(101)
                    394:     ["member3":protected]=>
                    395:     int(102)
                    396:   }
                    397: }
                    398: -- Iteration 10 --
                    399: array(2) {
                    400:   [0]=>
                    401:   object(ConcreteClass1)#%d (4) {
                    402:     ["member1"]=>
                    403:     NULL
                    404:     ["member2":"AbstractClass":private]=>
                    405:     NULL
                    406:     ["member3":protected]=>
                    407:     NULL
                    408:     ["var1"]=>
                    409:     int(30)
                    410:   }
                    411:   [1]=>
                    412:   object(ConcreteClass1)#%d (4) {
                    413:     ["member1"]=>
                    414:     NULL
                    415:     ["member2":"AbstractClass":private]=>
                    416:     NULL
                    417:     ["member3":protected]=>
                    418:     NULL
                    419:     ["var1"]=>
                    420:     int(30)
                    421:   }
                    422: }
                    423: -- Iteration 11 --
                    424: array(2) {
                    425:   [0]=>
                    426:   object(Template1)#%d (0) {
                    427:   }
                    428:   [1]=>
                    429:   object(Template1)#%d (0) {
                    430:   }
                    431: }
                    432: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>