Annotation of embedaddon/php/ext/standard/tests/array/array_diff_variation3.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test array_diff() function : usage variations  - array with different data types as values
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_diff(array $arr1, array $arr2 [, array ...])
                      6:  * Description: Returns the entries of $arr1 that have values which are not 
                      7:  * present in any of the others arguments. 
                      8:  * Source code: ext/standard/array.c
                      9:  */
                     10: 
                     11: /*
                     12:  * Test how array_diff() compares indexed arrays containing different
                     13:  * data types as values in place of $arr1
                     14:  */
                     15: 
                     16: echo "*** Testing array_diff() : usage variations ***\n";
                     17: 
                     18: // Initialise function arguments not being substituted (if any)
                     19: $array = array(1, 2);
                     20: 
                     21: //get an unset variable
                     22: $unset_var = 10;
                     23: unset ($unset_var);
                     24: 
                     25: //get heredoc
                     26: $heredoc = <<<END
                     27: This is a heredoc
                     28: END;
                     29: 
                     30: //array of values to iterate over
                     31: $values = array(
                     32: 
                     33: /*1*/"empty array" => array(),
                     34: 
                     35: /*2*/
                     36: "int" => array(
                     37:       // int data
                     38:       0,
                     39:       1,
                     40:       12345,
                     41:       -2345),
                     42: 
                     43: /*3*/
                     44: "float" => array(
                     45:       // float data
                     46:        10.5,
                     47:        -10.5,
                     48:        12.3456789000e10,
                     49:        12.3456789000E-10,
                     50:        .5),
                     51: 
                     52: /*4*/
                     53: "null" => array(      
                     54:       // null data
                     55:       NULL,
                     56:       null),
                     57: 
                     58: /*5*/
                     59: "boolean" => array(
                     60:       // boolean data
                     61:       true,
                     62:       false,
                     63:       TRUE,
                     64:       FALSE),
                     65: 
                     66: /*6*/
                     67: "empty" => array(      
                     68:       // empty data
                     69:       "",
                     70:       ''),
                     71: 
                     72: /*7*/
                     73: "string" => array(
                     74:       // string data
                     75:       "string",
                     76:       'string',
                     77:       $heredoc),
                     78:       
                     79: /*8*/      
                     80: "binary" => array(
                     81:        // binary data
                     82:        b"binary",
                     83:           (binary)"binary"),
                     84:           
                     85: /*9*/     
                     86: "undefined" => array(
                     87:       // undefined data
                     88:       @$undefined_var),
                     89: 
                     90: /*10*/
                     91: "unset" => array(      
                     92:       // unset data
                     93:       @$unset_var)
                     94: );
                     95: 
                     96: // loop through each element of the array for arr1
                     97: $iterator = 1;
                     98: foreach($values as $value) {
                     99:       echo "\n Iteration: $iterator \n";
                    100:       var_dump( array_diff($value, $array) );
                    101:       $iterator++;
                    102: };
                    103: 
                    104: echo "Done";
                    105: ?>
                    106: --EXPECTF--
                    107: *** Testing array_diff() : usage variations ***
                    108: 
                    109:  Iteration: 1 
                    110: array(0) {
                    111: }
                    112: 
                    113:  Iteration: 2 
                    114: array(3) {
                    115:   [0]=>
                    116:   int(0)
                    117:   [2]=>
                    118:   int(12345)
                    119:   [3]=>
                    120:   int(-2345)
                    121: }
                    122: 
                    123:  Iteration: 3 
                    124: array(5) {
                    125:   [0]=>
                    126:   float(10.5)
                    127:   [1]=>
                    128:   float(-10.5)
                    129:   [2]=>
                    130:   float(123456789000)
                    131:   [3]=>
                    132:   float(1.23456789E-9)
                    133:   [4]=>
                    134:   float(0.5)
                    135: }
                    136: 
                    137:  Iteration: 4 
                    138: array(2) {
                    139:   [0]=>
                    140:   NULL
                    141:   [1]=>
                    142:   NULL
                    143: }
                    144: 
                    145:  Iteration: 5 
                    146: array(2) {
                    147:   [1]=>
                    148:   bool(false)
                    149:   [3]=>
                    150:   bool(false)
                    151: }
                    152: 
                    153:  Iteration: 6 
                    154: array(2) {
                    155:   [0]=>
                    156:   string(0) ""
                    157:   [1]=>
                    158:   string(0) ""
                    159: }
                    160: 
                    161:  Iteration: 7 
                    162: array(3) {
                    163:   [0]=>
                    164:   string(6) "string"
                    165:   [1]=>
                    166:   string(6) "string"
                    167:   [2]=>
                    168:   string(17) "This is a heredoc"
                    169: }
                    170: 
                    171:  Iteration: 8 
                    172: array(2) {
                    173:   [0]=>
                    174:   string(6) "binary"
                    175:   [1]=>
                    176:   string(6) "binary"
                    177: }
                    178: 
                    179:  Iteration: 9 
                    180: array(1) {
                    181:   [0]=>
                    182:   NULL
                    183: }
                    184: 
                    185:  Iteration: 10 
                    186: array(1) {
                    187:   [0]=>
                    188:   NULL
                    189: }
                    190: Done

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