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

1.1     ! misho       1: --TEST--
        !             2: Test array_combine() function : usage variations - associative array with different values(Bug#43424)
        !             3: --FILE--
        !             4: <?php
        !             5: /* Prototype  : array array_combine(array $keys, array $values)
        !             6:  * Description: Creates an array by using the elements of the first parameter as keys
        !             7:  *              and the elements of the second as the corresponding values
        !             8:  * Source code: ext/standard/array.c
        !             9: */
        !            10: 
        !            11: /*
        !            12: * Testing the functionality of array_combine() by passing various
        !            13: * associative arrays having different possible values to $keys argument and
        !            14: * associative arrays having different possible values to $values argument.
        !            15: */
        !            16: 
        !            17: echo "*** Testing array_combine() : assoc array with diff values to both \$keys and \$values argument ***\n";
        !            18: 
        !            19: // get an unset variable
        !            20: $unset_var = 10;
        !            21: unset ($unset_var);
        !            22: 
        !            23: // get a resource variable
        !            24: $fp = fopen(__FILE__, "r");
        !            25: 
        !            26: // get a class
        !            27: class classA
        !            28: {
        !            29: public function __toString(){
        !            30: return "Class A object";
        !            31: }
        !            32: }
        !            33: 
        !            34: // get a heredoc string
        !            35: $heredoc = <<<EOT
        !            36: Hello world
        !            37: EOT;
        !            38: 
        !            39: // different variations of associative array
        !            40: $arrays = array (
        !            41: 
        !            42:        // empty array
        !            43: /*1*/  array(),
        !            44: 
        !            45:        // arrays with integer values
        !            46:        array('0' => 0),
        !            47:        array("1" => 1),
        !            48:        array("one" => 1, 'two' => 2, "three" => 3, 4 => 4),
        !            49: 
        !            50:        // arrays with float values
        !            51: /*5*/  array("float" => 2.3333),
        !            52:        array("f1" => 1.2, 'f2' => 3.33, 3 => 4.89999922839999, 'f4' => 33333333.333),
        !            53: 
        !            54:        // arrays with string values
        !            55: /*7*/  array(111 => "\tHello", "red" => "col\tor", 2 => "\v\fworld", 3.3 =>  "pen\n"),
        !            56:        array(111 => '\tHello', "red" => 'col\tor', 2 => '\v\fworld', 3.3 =>  'pen\n'),
        !            57:        array(1 => "hello", "heredoc" => $heredoc),
        !            58: 
        !            59:        // array with object, unset variable and resource variable
        !            60: /*10*/ array(11 => new classA(), "unset" => @$unset_var, "resource" => $fp),
        !            61: 
        !            62:        // array with mixed values
        !            63: /*11*/ array(1 => 'hello', 2 => new classA(), 222 => "fruit", 
        !            64:              'resource' => $fp, "int" => 133, "float" => 444.432, 
        !            65:              "unset" => @$unset_var, "heredoc" => $heredoc)
        !            66: );
        !            67: 
        !            68: 
        !            69: // loop through each sub-array within $arrays to check the behavior of array_combine()
        !            70: $iterator = 1;
        !            71: foreach($arrays as $array) {
        !            72:   echo "-- Iteration $iterator --\n";
        !            73:   var_dump( array_combine($array, $array) );
        !            74:   $iterator++;
        !            75: }
        !            76: 
        !            77: // close the file resource used
        !            78: fclose($fp);
        !            79: 
        !            80: echo "Done";
        !            81: ?>
        !            82: --EXPECTF--
        !            83: *** Testing array_combine() : assoc array with diff values to both $keys and $values argument ***
        !            84: -- Iteration 1 --
        !            85: 
        !            86: Warning: array_combine(): Both parameters should have at least 1 element in %s on line %d
        !            87: bool(false)
        !            88: -- Iteration 2 --
        !            89: array(1) {
        !            90:   [0]=>
        !            91:   int(0)
        !            92: }
        !            93: -- Iteration 3 --
        !            94: array(1) {
        !            95:   [1]=>
        !            96:   int(1)
        !            97: }
        !            98: -- Iteration 4 --
        !            99: array(4) {
        !           100:   [1]=>
        !           101:   int(1)
        !           102:   [2]=>
        !           103:   int(2)
        !           104:   [3]=>
        !           105:   int(3)
        !           106:   [4]=>
        !           107:   int(4)
        !           108: }
        !           109: -- Iteration 5 --
        !           110: array(1) {
        !           111:   ["2.3333"]=>
        !           112:   float(2.3333)
        !           113: }
        !           114: -- Iteration 6 --
        !           115: array(4) {
        !           116:   ["1.2"]=>
        !           117:   float(1.2)
        !           118:   ["3.33"]=>
        !           119:   float(3.33)
        !           120:   ["4.8999992284"]=>
        !           121:   float(4.8999992284)
        !           122:   ["33333333.333"]=>
        !           123:   float(33333333.333)
        !           124: }
        !           125: -- Iteration 7 --
        !           126: array(4) {
        !           127:   ["   Hello"]=>
        !           128:   string(6) "  Hello"
        !           129:   ["col        or"]=>
        !           130:   string(6) "col       or"
        !           131:   ["world"]=>
        !           132:   string(7) "world"
        !           133:   ["pen
        !           134: "]=>
        !           135:   string(4) "pen
        !           136: "
        !           137: }
        !           138: -- Iteration 8 --
        !           139: array(4) {
        !           140:   ["\tHello"]=>
        !           141:   string(7) "\tHello"
        !           142:   ["col\tor"]=>
        !           143:   string(7) "col\tor"
        !           144:   ["\v\fworld"]=>
        !           145:   string(9) "\v\fworld"
        !           146:   ["pen\n"]=>
        !           147:   string(5) "pen\n"
        !           148: }
        !           149: -- Iteration 9 --
        !           150: array(2) {
        !           151:   ["hello"]=>
        !           152:   string(5) "hello"
        !           153:   ["Hello world"]=>
        !           154:   string(11) "Hello world"
        !           155: }
        !           156: -- Iteration 10 --
        !           157: array(3) {
        !           158:   ["Class A object"]=>
        !           159:   object(classA)#%d (0) {
        !           160:   }
        !           161:   [""]=>
        !           162:   NULL
        !           163:   ["Resource id #%d"]=>
        !           164:   resource(%d) of type (stream)
        !           165: }
        !           166: -- Iteration 11 --
        !           167: array(8) {
        !           168:   ["hello"]=>
        !           169:   string(5) "hello"
        !           170:   ["Class A object"]=>
        !           171:   object(classA)#%d (0) {
        !           172:   }
        !           173:   ["fruit"]=>
        !           174:   string(5) "fruit"
        !           175:   ["Resource id #%d"]=>
        !           176:   resource(%d) of type (stream)
        !           177:   [133]=>
        !           178:   int(133)
        !           179:   ["444.432"]=>
        !           180:   float(444.432)
        !           181:   [""]=>
        !           182:   NULL
        !           183:   ["Hello world"]=>
        !           184:   string(11) "Hello world"
        !           185: }
        !           186: Done

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