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>