Annotation of embedaddon/php/ext/standard/tests/array/bug33940.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #33940 (array_map() fails to pass by reference when called recursively)
        !             3: --INI--
        !             4: allow_call_time_pass_reference=1
        !             5: error_reporting=4095
        !             6: --FILE--
        !             7: <?php
        !             8: function ref_map(&$item) {
        !             9:     if(!is_array($item)) {
        !            10:         $item = 1;
        !            11:         return 2;
        !            12:     } else {
        !            13:         $ret = array_map('ref_map', &$item);
        !            14:         return $ret;
        !            15:     }
        !            16: }
        !            17: 
        !            18: $a = array(array(0), 0);
        !            19: $ret = array_map('ref_map', $a);
        !            20: echo 'Array: '; print_r($a);
        !            21: echo 'Return: '; print_r($ret);
        !            22: $a = array(array(0), 0);
        !            23: $ret = array_map('ref_map', &$a);
        !            24: echo 'Array: '; print_r($a);
        !            25: echo 'Return: '; print_r($ret);
        !            26: ?>
        !            27: --EXPECTF--
        !            28: Array: Array
        !            29: (
        !            30:     [0] => Array
        !            31:         (
        !            32:             [0] => 0
        !            33:         )
        !            34: 
        !            35:     [1] => 0
        !            36: )
        !            37: Return: Array
        !            38: (
        !            39:     [0] => Array
        !            40:         (
        !            41:             [0] => 2
        !            42:         )
        !            43: 
        !            44:     [1] => 2
        !            45: )
        !            46: Array: Array
        !            47: (
        !            48:     [0] => Array
        !            49:         (
        !            50:             [0] => 1
        !            51:         )
        !            52: 
        !            53:     [1] => 1
        !            54: )
        !            55: Return: Array
        !            56: (
        !            57:     [0] => Array
        !            58:         (
        !            59:             [0] => 2
        !            60:         )
        !            61: 
        !            62:     [1] => 2
        !            63: )

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