Annotation of embedaddon/php/ext/standard/tests/array/array_merge_variation3.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test array_merge() function : usage variations - arrays of diff. data types
        !             3: --FILE--
        !             4: <?php
        !             5: /* Prototype  : array array_merge(array $arr1, array $arr2 [, array $...])
        !             6:  * Description: Merges elements from passed arrays into one array 
        !             7:  * Source code: ext/standard/array.c
        !             8:  */
        !             9: 
        !            10: /*
        !            11:  * Pass arrays of different data types to test how array_merge adds them
        !            12:  * onto an existing array
        !            13:  */
        !            14: 
        !            15: echo "*** Testing array_merge() : usage variations ***\n";
        !            16: 
        !            17: // Initialise function arguments not being substituted
        !            18: $arr = array (1, 2);
        !            19: 
        !            20: //get an unset variable
        !            21: $unset_var = 10;
        !            22: unset ($unset_var);
        !            23: 
        !            24: // get a class
        !            25: class classA
        !            26: {
        !            27:   public function __toString() {
        !            28:     return "Class A object";
        !            29:   }
        !            30: }
        !            31: 
        !            32: // heredoc string
        !            33: $heredoc = <<<EOT
        !            34: hello world
        !            35: EOT;
        !            36: 
        !            37: // get a resource variable
        !            38: $fp = fopen(__FILE__, "r");
        !            39: 
        !            40: // arrays of different data types to be passed as $input
        !            41: $inputs = array(
        !            42: 
        !            43:        // int data
        !            44: /*1*/  'int' => array(
        !            45:           0,
        !            46:        1,
        !            47:        12345,
        !            48:        -2345,
        !            49:        ),
        !            50: 
        !            51:        // float data
        !            52: /*2*/  'float' => array(
        !            53:        10.5,
        !            54:        -10.5,
        !            55:        12.3456789000e10,
        !            56:        12.3456789000E-10,
        !            57:        .5,
        !            58:        ),
        !            59: 
        !            60:        // null data
        !            61: /*3*/ 'null' => array(
        !            62:        NULL,
        !            63:        null,
        !            64:        ),
        !            65: 
        !            66:        // boolean data
        !            67: /*4*/ 'bool' => array(
        !            68:        true,
        !            69:        false,
        !            70:        TRUE,
        !            71:        FALSE,
        !            72:        ),
        !            73:        
        !            74:        // empty data
        !            75: /*5*/ 'empty string' => array(
        !            76:        "",
        !            77:        '',
        !            78:        ),
        !            79:        
        !            80: /*6*/ 'empty array' => array(
        !            81:        ),
        !            82: 
        !            83:        // string data
        !            84: /*7*/ 'string' => array(
        !            85:        "string",
        !            86:        'string',
        !            87:        $heredoc,
        !            88:        ),
        !            89:        
        !            90:        // object data
        !            91: /*8*/ 'object' => array(
        !            92:        new classA(),
        !            93:        ),
        !            94: 
        !            95:        // undefined data
        !            96: /*9*/ 'undefined' => array(
        !            97:        @$undefined_var,
        !            98:        ),
        !            99: 
        !           100:        // unset data
        !           101: /*10*/ 'unset' => array(
        !           102:        @$unset_var,
        !           103:        ),
        !           104: 
        !           105:        // resource variable
        !           106: /*11*/ 'resource' => array(
        !           107:        $fp
        !           108:        ),
        !           109: );
        !           110: 
        !           111: // loop through each element of $inputs to check the behavior of array_merge
        !           112: $iterator = 1;
        !           113: foreach($inputs as $key => $input) {
        !           114:   echo "\n-- Iteration $iterator: $key data --\n";
        !           115:   var_dump( array_merge($input, $arr) );
        !           116:   var_dump( array_merge($arr, $input) );
        !           117:   $iterator++;
        !           118: };
        !           119: 
        !           120: fclose($fp);
        !           121: 
        !           122: echo "Done";
        !           123: ?>
        !           124: 
        !           125: --EXPECTF--
        !           126: *** Testing array_merge() : usage variations ***
        !           127: 
        !           128: -- Iteration 1: int data --
        !           129: array(6) {
        !           130:   [0]=>
        !           131:   int(0)
        !           132:   [1]=>
        !           133:   int(1)
        !           134:   [2]=>
        !           135:   int(12345)
        !           136:   [3]=>
        !           137:   int(-2345)
        !           138:   [4]=>
        !           139:   int(1)
        !           140:   [5]=>
        !           141:   int(2)
        !           142: }
        !           143: array(6) {
        !           144:   [0]=>
        !           145:   int(1)
        !           146:   [1]=>
        !           147:   int(2)
        !           148:   [2]=>
        !           149:   int(0)
        !           150:   [3]=>
        !           151:   int(1)
        !           152:   [4]=>
        !           153:   int(12345)
        !           154:   [5]=>
        !           155:   int(-2345)
        !           156: }
        !           157: 
        !           158: -- Iteration 2: float data --
        !           159: array(7) {
        !           160:   [0]=>
        !           161:   float(10.5)
        !           162:   [1]=>
        !           163:   float(-10.5)
        !           164:   [2]=>
        !           165:   float(123456789000)
        !           166:   [3]=>
        !           167:   float(1.23456789E-9)
        !           168:   [4]=>
        !           169:   float(0.5)
        !           170:   [5]=>
        !           171:   int(1)
        !           172:   [6]=>
        !           173:   int(2)
        !           174: }
        !           175: array(7) {
        !           176:   [0]=>
        !           177:   int(1)
        !           178:   [1]=>
        !           179:   int(2)
        !           180:   [2]=>
        !           181:   float(10.5)
        !           182:   [3]=>
        !           183:   float(-10.5)
        !           184:   [4]=>
        !           185:   float(123456789000)
        !           186:   [5]=>
        !           187:   float(1.23456789E-9)
        !           188:   [6]=>
        !           189:   float(0.5)
        !           190: }
        !           191: 
        !           192: -- Iteration 3: null data --
        !           193: array(4) {
        !           194:   [0]=>
        !           195:   NULL
        !           196:   [1]=>
        !           197:   NULL
        !           198:   [2]=>
        !           199:   int(1)
        !           200:   [3]=>
        !           201:   int(2)
        !           202: }
        !           203: array(4) {
        !           204:   [0]=>
        !           205:   int(1)
        !           206:   [1]=>
        !           207:   int(2)
        !           208:   [2]=>
        !           209:   NULL
        !           210:   [3]=>
        !           211:   NULL
        !           212: }
        !           213: 
        !           214: -- Iteration 4: bool data --
        !           215: array(6) {
        !           216:   [0]=>
        !           217:   bool(true)
        !           218:   [1]=>
        !           219:   bool(false)
        !           220:   [2]=>
        !           221:   bool(true)
        !           222:   [3]=>
        !           223:   bool(false)
        !           224:   [4]=>
        !           225:   int(1)
        !           226:   [5]=>
        !           227:   int(2)
        !           228: }
        !           229: array(6) {
        !           230:   [0]=>
        !           231:   int(1)
        !           232:   [1]=>
        !           233:   int(2)
        !           234:   [2]=>
        !           235:   bool(true)
        !           236:   [3]=>
        !           237:   bool(false)
        !           238:   [4]=>
        !           239:   bool(true)
        !           240:   [5]=>
        !           241:   bool(false)
        !           242: }
        !           243: 
        !           244: -- Iteration 5: empty string data --
        !           245: array(4) {
        !           246:   [0]=>
        !           247:   string(0) ""
        !           248:   [1]=>
        !           249:   string(0) ""
        !           250:   [2]=>
        !           251:   int(1)
        !           252:   [3]=>
        !           253:   int(2)
        !           254: }
        !           255: array(4) {
        !           256:   [0]=>
        !           257:   int(1)
        !           258:   [1]=>
        !           259:   int(2)
        !           260:   [2]=>
        !           261:   string(0) ""
        !           262:   [3]=>
        !           263:   string(0) ""
        !           264: }
        !           265: 
        !           266: -- Iteration 6: empty array data --
        !           267: array(2) {
        !           268:   [0]=>
        !           269:   int(1)
        !           270:   [1]=>
        !           271:   int(2)
        !           272: }
        !           273: array(2) {
        !           274:   [0]=>
        !           275:   int(1)
        !           276:   [1]=>
        !           277:   int(2)
        !           278: }
        !           279: 
        !           280: -- Iteration 7: string data --
        !           281: array(5) {
        !           282:   [0]=>
        !           283:   string(6) "string"
        !           284:   [1]=>
        !           285:   string(6) "string"
        !           286:   [2]=>
        !           287:   string(11) "hello world"
        !           288:   [3]=>
        !           289:   int(1)
        !           290:   [4]=>
        !           291:   int(2)
        !           292: }
        !           293: array(5) {
        !           294:   [0]=>
        !           295:   int(1)
        !           296:   [1]=>
        !           297:   int(2)
        !           298:   [2]=>
        !           299:   string(6) "string"
        !           300:   [3]=>
        !           301:   string(6) "string"
        !           302:   [4]=>
        !           303:   string(11) "hello world"
        !           304: }
        !           305: 
        !           306: -- Iteration 8: object data --
        !           307: array(3) {
        !           308:   [0]=>
        !           309:   object(classA)#%d (0) {
        !           310:   }
        !           311:   [1]=>
        !           312:   int(1)
        !           313:   [2]=>
        !           314:   int(2)
        !           315: }
        !           316: array(3) {
        !           317:   [0]=>
        !           318:   int(1)
        !           319:   [1]=>
        !           320:   int(2)
        !           321:   [2]=>
        !           322:   object(classA)#%d (0) {
        !           323:   }
        !           324: }
        !           325: 
        !           326: -- Iteration 9: undefined data --
        !           327: array(3) {
        !           328:   [0]=>
        !           329:   NULL
        !           330:   [1]=>
        !           331:   int(1)
        !           332:   [2]=>
        !           333:   int(2)
        !           334: }
        !           335: array(3) {
        !           336:   [0]=>
        !           337:   int(1)
        !           338:   [1]=>
        !           339:   int(2)
        !           340:   [2]=>
        !           341:   NULL
        !           342: }
        !           343: 
        !           344: -- Iteration 10: unset data --
        !           345: array(3) {
        !           346:   [0]=>
        !           347:   NULL
        !           348:   [1]=>
        !           349:   int(1)
        !           350:   [2]=>
        !           351:   int(2)
        !           352: }
        !           353: array(3) {
        !           354:   [0]=>
        !           355:   int(1)
        !           356:   [1]=>
        !           357:   int(2)
        !           358:   [2]=>
        !           359:   NULL
        !           360: }
        !           361: 
        !           362: -- Iteration 11: resource data --
        !           363: array(3) {
        !           364:   [0]=>
        !           365:   resource(%d) of type (stream)
        !           366:   [1]=>
        !           367:   int(1)
        !           368:   [2]=>
        !           369:   int(2)
        !           370: }
        !           371: array(3) {
        !           372:   [0]=>
        !           373:   int(1)
        !           374:   [1]=>
        !           375:   int(2)
        !           376:   [2]=>
        !           377:   resource(%d) of type (stream)
        !           378: }
        !           379: Done

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