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

1.1       misho       1: --TEST--
                      2: Test array_filter() function : usage variations - Callback function with different return values 
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_filter(array $input [, callback $callback])
                      6:  * Description: Filters elements from the array via the callback. 
                      7:  * Source code: ext/standard/array.c
                      8: */
                      9: 
                     10: /*
                     11: * callback functions are expected to return bool value for array_filter()
                     12: * here testing callback functions for return values other than bool
                     13: */
                     14: 
                     15: echo "*** Testing array_filter() : usage variations - callback function with different return values***\n";
                     16: 
                     17: $input = array(0, 1, -1, 10, 100, 1000, 'Hello', null, true);
                     18: 
                     19: // callback functions
                     20: // int as return value
                     21: function callback1($input)
                     22: {
                     23:   return 5;
                     24: }
                     25: echo "callback function with int return value\n";
                     26: var_dump( array_filter($input, 'callback1') );
                     27: 
                     28: // float as return value
                     29: function callback2($input)
                     30: {
                     31:   return 3.4;
                     32: }
                     33: echo "callback function with float return value\n";
                     34: var_dump( array_filter($input, 'callback2') );
                     35: 
                     36: // string as return value
                     37: function callback3($input)
                     38: {
                     39:   return 'value';
                     40: }
                     41: echo "callback function with string return value\n";
                     42: var_dump( array_filter($input, 'callback3') );
                     43: 
                     44: // null as return value
                     45: function callback4($input)
                     46: {
                     47:   return null;
                     48: }
                     49: echo "callback function with null return value\n";
                     50: var_dump( array_filter($input, 'callback4') );
                     51: 
                     52: // array as return value
                     53: function callback5($input)
                     54: {
                     55:   return array(8);
                     56: }
                     57: echo "callback function with array as return value\n";
                     58: var_dump( array_filter($input, 'callback5') );
                     59: 
                     60: echo "Done"
                     61: ?>
                     62: --EXPECTF--
                     63: *** Testing array_filter() : usage variations - callback function with different return values***
                     64: callback function with int return value
                     65: array(9) {
                     66:   [0]=>
                     67:   int(0)
                     68:   [1]=>
                     69:   int(1)
                     70:   [2]=>
                     71:   int(-1)
                     72:   [3]=>
                     73:   int(10)
                     74:   [4]=>
                     75:   int(100)
                     76:   [5]=>
                     77:   int(1000)
                     78:   [6]=>
                     79:   string(5) "Hello"
                     80:   [7]=>
                     81:   NULL
                     82:   [8]=>
                     83:   bool(true)
                     84: }
                     85: callback function with float return value
                     86: array(9) {
                     87:   [0]=>
                     88:   int(0)
                     89:   [1]=>
                     90:   int(1)
                     91:   [2]=>
                     92:   int(-1)
                     93:   [3]=>
                     94:   int(10)
                     95:   [4]=>
                     96:   int(100)
                     97:   [5]=>
                     98:   int(1000)
                     99:   [6]=>
                    100:   string(5) "Hello"
                    101:   [7]=>
                    102:   NULL
                    103:   [8]=>
                    104:   bool(true)
                    105: }
                    106: callback function with string return value
                    107: array(9) {
                    108:   [0]=>
                    109:   int(0)
                    110:   [1]=>
                    111:   int(1)
                    112:   [2]=>
                    113:   int(-1)
                    114:   [3]=>
                    115:   int(10)
                    116:   [4]=>
                    117:   int(100)
                    118:   [5]=>
                    119:   int(1000)
                    120:   [6]=>
                    121:   string(5) "Hello"
                    122:   [7]=>
                    123:   NULL
                    124:   [8]=>
                    125:   bool(true)
                    126: }
                    127: callback function with null return value
                    128: array(0) {
                    129: }
                    130: callback function with array as return value
                    131: array(9) {
                    132:   [0]=>
                    133:   int(0)
                    134:   [1]=>
                    135:   int(1)
                    136:   [2]=>
                    137:   int(-1)
                    138:   [3]=>
                    139:   int(10)
                    140:   [4]=>
                    141:   int(100)
                    142:   [5]=>
                    143:   int(1000)
                    144:   [6]=>
                    145:   string(5) "Hello"
                    146:   [7]=>
                    147:   NULL
                    148:   [8]=>
                    149:   bool(true)
                    150: }
                    151: Done

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