Annotation of embedaddon/php/ext/standard/tests/array/array_diff_assoc_variation4.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test array_diff_assoc() function : usage variations - arrays with different data types as keys
! 3: --FILE--
! 4:
! 5: <?php
! 6: /* Prototype : array array_diff_assoc(array $arr1, array $arr2 [, array ...])
! 7: * Description: Returns the entries of arr1 that have values which are not present
! 8: * in any of the others arguments but do additional checks whether the keys are equal
! 9: * Source code: ext/standard/array.c
! 10: */
! 11:
! 12: /*
! 13: * Test how array_diff_assoc() compares arrays containing different data types
! 14: * as keys
! 15: */
! 16:
! 17: echo "\n*** Testing array_diff_assoc() : usage variations ***\n";
! 18:
! 19: $array = array(1, 2, 3);
! 20:
! 21: //get an unset variable
! 22: $unset_var = 10;
! 23: unset ($unset_var);
! 24:
! 25: // heredoc string
! 26: $heredoc = <<<EOT
! 27: hello world
! 28: EOT;
! 29:
! 30: //Different data types as keys to be passed to $arr1 argument
! 31: $inputs = array(
! 32:
! 33: // int data
! 34: /*1*/
! 35: 'int' => array(
! 36: 0 => 'zero',
! 37: 1 => 'one',
! 38: 12345 => 'positive',
! 39: -2345 => 'negative'),
! 40:
! 41: // float data
! 42: /*2*/
! 43: 'float' => array(
! 44: 10.5 => 'float 1',
! 45: -10.5 => 'float 2',
! 46: .5 => 'float 3'),
! 47:
! 48: // null data
! 49: /*3*/
! 50: 'null' => array(
! 51: NULL => 'null 1',
! 52: null => 'null 2'),
! 53:
! 54: // boolean data
! 55: /*4*/
! 56: 'bool' => array(
! 57: true => 'boolt',
! 58: false => 'boolf',
! 59: TRUE => 'boolT',
! 60: FALSE => 'boolF'),
! 61:
! 62: // empty data
! 63: /*5*/
! 64: 'empty' => array(
! 65: "" => 'emptyd',
! 66: '' => 'emptys'),
! 67:
! 68: // string data
! 69: /*6*/
! 70: 'string' => array(
! 71: "string" => 'stringd',
! 72: 'string' => 'strings',
! 73: $heredoc => 'stringh'),
! 74:
! 75: // binary data
! 76: /*7*/
! 77: 'binary' => array(
! 78: b"binary1" => 'binary 1',
! 79: (binary)"binary2" => 'binary 2'),
! 80:
! 81: // undefined data
! 82: /*8*/
! 83: 'undefined' => array(
! 84: @$undefined_var => 'undefined'),
! 85:
! 86: // unset data
! 87: /*9*/
! 88: 'unset' => array(
! 89: @$unset_var => 'unset'),
! 90:
! 91: );
! 92:
! 93: // loop through each element of $inputs to check the behavior of array_diff_assoc
! 94: $iterator = 1;
! 95: foreach($inputs as $key => $input) {
! 96: echo "\n-- Iteration $iterator --\n";
! 97: var_dump( array_diff_assoc($input, $array));
! 98: $iterator++;
! 99: };
! 100:
! 101: echo "Done";
! 102: ?>
! 103:
! 104: --EXPECTF--
! 105:
! 106: *** Testing array_diff_assoc() : usage variations ***
! 107:
! 108: -- Iteration 1 --
! 109: array(4) {
! 110: [0]=>
! 111: string(4) "zero"
! 112: [1]=>
! 113: string(3) "one"
! 114: [12345]=>
! 115: string(8) "positive"
! 116: [-2345]=>
! 117: string(8) "negative"
! 118: }
! 119:
! 120: -- Iteration 2 --
! 121: array(3) {
! 122: [10]=>
! 123: string(7) "float 1"
! 124: [-10]=>
! 125: string(7) "float 2"
! 126: [0]=>
! 127: string(7) "float 3"
! 128: }
! 129:
! 130: -- Iteration 3 --
! 131: array(1) {
! 132: [""]=>
! 133: string(6) "null 2"
! 134: }
! 135:
! 136: -- Iteration 4 --
! 137: array(2) {
! 138: [1]=>
! 139: string(5) "boolT"
! 140: [0]=>
! 141: string(5) "boolF"
! 142: }
! 143:
! 144: -- Iteration 5 --
! 145: array(1) {
! 146: [""]=>
! 147: string(6) "emptys"
! 148: }
! 149:
! 150: -- Iteration 6 --
! 151: array(2) {
! 152: ["string"]=>
! 153: string(7) "strings"
! 154: ["hello world"]=>
! 155: string(7) "stringh"
! 156: }
! 157:
! 158: -- Iteration 7 --
! 159: array(2) {
! 160: ["binary1"]=>
! 161: string(8) "binary 1"
! 162: ["binary2"]=>
! 163: string(8) "binary 2"
! 164: }
! 165:
! 166: -- Iteration 8 --
! 167: array(1) {
! 168: [""]=>
! 169: string(9) "undefined"
! 170: }
! 171:
! 172: -- Iteration 9 --
! 173: array(1) {
! 174: [""]=>
! 175: string(5) "unset"
! 176: }
! 177: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>