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>