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

1.1       misho       1: --TEST--
                      2: Test array_push() function : usage variations - referenced variables
                      3: --INI--
                      4: allow_call_time_pass_reference=on
                      5: --FILE--
                      6: <?php
                      7: /* Prototype  : int array_push(array $stack, mixed $var [, mixed $...])
                      8:  * Description: Pushes elements onto the end of the array 
                      9:  * Source code: ext/standard/array.c
                     10:  */
                     11: 
                     12: /*
                     13:  * Test array_push when:
                     14:  * 1. passed referenced variables as $var arguments
                     15:  * 2. $var argument is a reference to $stack argument
                     16:  */
                     17: 
                     18: echo "*** Testing array_push() : usage variations ***\n";
                     19: 
                     20: $var1 = 'a';
                     21: $var2 = 'b';
                     22: $var3 = 'c';
                     23: $var4 = 'x';
                     24: $var5 = 'y';
                     25: $var6 = 'z';
                     26: 
                     27: $array = array(1, 2, 3);
                     28: 
                     29: echo "\n-- Pass array_push referenced varialbes as \$var arguments --\n";
                     30: var_dump(array_push($array, &$var1, &$var2, &$var3, &$var4, &$var5, &$var6));
                     31: var_dump($array);
                     32: 
                     33: echo "\n-- Pass \$var argument which is a reference to \$stack argument --\n";
                     34: var_dump(array_push($array, &$array));
                     35: var_dump($array);
                     36: 
                     37: echo "Done";
                     38: ?>
                     39: --EXPECTF--
                     40: *** Testing array_push() : usage variations ***
                     41: 
                     42: -- Pass array_push referenced varialbes as $var arguments --
                     43: int(9)
                     44: array(9) {
                     45:   [0]=>
                     46:   int(1)
                     47:   [1]=>
                     48:   int(2)
                     49:   [2]=>
                     50:   int(3)
                     51:   [3]=>
                     52:   &string(1) "a"
                     53:   [4]=>
                     54:   &string(1) "b"
                     55:   [5]=>
                     56:   &string(1) "c"
                     57:   [6]=>
                     58:   &string(1) "x"
                     59:   [7]=>
                     60:   &string(1) "y"
                     61:   [8]=>
                     62:   &string(1) "z"
                     63: }
                     64: 
                     65: -- Pass $var argument which is a reference to $stack argument --
                     66: int(10)
                     67: array(10) {
                     68:   [0]=>
                     69:   int(1)
                     70:   [1]=>
                     71:   int(2)
                     72:   [2]=>
                     73:   int(3)
                     74:   [3]=>
                     75:   &string(1) "a"
                     76:   [4]=>
                     77:   &string(1) "b"
                     78:   [5]=>
                     79:   &string(1) "c"
                     80:   [6]=>
                     81:   &string(1) "x"
                     82:   [7]=>
                     83:   &string(1) "y"
                     84:   [8]=>
                     85:   &string(1) "z"
                     86:   [9]=>
                     87:   &array(10) {
                     88:     [0]=>
                     89:     int(1)
                     90:     [1]=>
                     91:     int(2)
                     92:     [2]=>
                     93:     int(3)
                     94:     [3]=>
                     95:     &string(1) "a"
                     96:     [4]=>
                     97:     &string(1) "b"
                     98:     [5]=>
                     99:     &string(1) "c"
                    100:     [6]=>
                    101:     &string(1) "x"
                    102:     [7]=>
                    103:     &string(1) "y"
                    104:     [8]=>
                    105:     &string(1) "z"
                    106:     [9]=>
                    107:     *RECURSION*
                    108:   }
                    109: }
                    110: Done

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