Annotation of embedaddon/php/ext/standard/tests/array/array_slice_variation9.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_slice() function : usage variations - referenced variables
3: --INI--
4: allow_call_time_pass_reference=on
5: --FILE--
6: <?php
7: /* Prototype : array array_slice(array $input, int $offset [, int $length [, bool $preserve_keys]])
8: * Description: Returns elements specified by offset and length
9: * Source code: ext/standard/array.c
10: */
11:
12: /*
13: * Test array_slice() when:
14: * 1. Passed an array of referenced variables
15: * 2. $input argument is passed by reference
16: */
17:
18: echo "*** Testing array_slice() : usage variations ***\n";
19:
20: $val1 = 'one';
21: $val2 = 'two';
22: $val3 = 'three';
23:
24: echo "\n-- Array of referenced variables (\$preserve_keys = default) --\n";
25: $input = array(3 => &$val1, 2 => &$val2, 1 => &$val3);
26: var_dump(array_slice($input, 1, 2));
27:
28: echo "-- Change \$val2 (\$preserve_keys = TRUE) --\n";
29: $val2 = 'hello, world';
30: var_dump(array_slice($input, 1, 2, true));
31:
32: echo "\n-- Pass array by reference --\n";
33: $new_input = array (1, 2, 3);
34: var_dump(array_slice(&$new_input, 1));
35: echo "-- Check passed array: --\n";
36: var_dump($new_input);
37:
38: echo "Done";
39: ?>
40:
41: --EXPECTF--
42: *** Testing array_slice() : usage variations ***
43:
44: -- Array of referenced variables ($preserve_keys = default) --
45: array(2) {
46: [0]=>
47: &string(3) "two"
48: [1]=>
49: &string(5) "three"
50: }
51: -- Change $val2 ($preserve_keys = TRUE) --
52: array(2) {
53: [2]=>
54: &string(12) "hello, world"
55: [1]=>
56: &string(5) "three"
57: }
58:
59: -- Pass array by reference --
60: array(2) {
61: [0]=>
62: int(2)
63: [1]=>
64: int(3)
65: }
66: -- Check passed array: --
67: array(3) {
68: [0]=>
69: int(1)
70: [1]=>
71: int(2)
72: [2]=>
73: int(3)
74: }
75: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>