Annotation of embedaddon/php/ext/standard/tests/array/current_variation2.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test current() function : usage variations - arrays containing different data types
3: --FILE--
4: <?php
5: /* Prototype : mixed current(array $array_arg)
6: * Description: Return the element currently pointed to by the internal array pointer
7: * Source code: ext/standard/array.c
8: * Alias to functions: pos
9: */
10:
11: /*
12: * Pass arrays of different data types as $array_arg to current() to test behaviour
13: */
14:
15: echo "*** Testing current() : usage variations ***\n";
16:
17: //get an unset variable
18: $unset_var = 10;
19: unset ($unset_var);
20:
21: // get a class
22: class classA
23: {
24: public function __toString() {
25: return "Class A object";
26: }
27: }
28:
29: // heredoc string
30: $heredoc = <<<EOT
31: hello world
32: EOT;
33:
34: // get a resource variable
35: $fp = fopen(__FILE__, "r");
36:
37: // arrays of different data types to be passed to $array_arg argument
38: $inputs = array(
39:
40: // int data
41: /*1*/ 'int' => array(
42: 0,
43: 1,
44: 12345,
45: -2345,
46: ),
47:
48: // float data
49: /*2*/ 'float' => array(
50: 10.5,
51: -10.5,
52: 12.3456789000e10,
53: 12.3456789000E-10,
54: .5,
55: ),
56:
57: // null data
58: /*3*/ 'null' => array(
59: NULL,
60: null,
61: ),
62:
63: // boolean data
64: /*4*/ 'bool' => array(
65: true,
66: false,
67: TRUE,
68: FALSE,
69: ),
70:
71: // empty data
72: /*5*/ 'empty string' => array(
73: "",
74: '',
75: ),
76:
77: /*6*/ 'empty array' => array(
78: ),
79:
80: // string data
81: /*7*/ 'string' => array(
82: "string",
83: 'string',
84: $heredoc,
85: ),
86:
87: // object data
88: /*8*/ 'object' => array(
89: new classA(),
90: ),
91:
92: // undefined data
93: /*9*/ 'undefined' => array(
94: @$undefined_var,
95: ),
96:
97: // unset data
98: /*10*/ 'unset' => array(
99: @$unset_var,
100: ),
101:
102: // resource variable
103: /*11*/ 'resource' => array(
104: $fp
105: ),
106: );
107:
108: // loop through each element of $inputs to check the behavior of current()
109: $iterator = 1;
110: foreach($inputs as $key => $input) {
111: echo "\n-- Iteration $iterator : $key data --\n";
112: var_dump( current($input) );
113: $iterator++;
114: };
115:
116: fclose($fp);
117: ?>
118: ===DONE===
119: --EXPECTF--
120: *** Testing current() : usage variations ***
121:
122: -- Iteration 1 : int data --
123: int(0)
124:
125: -- Iteration 2 : float data --
126: float(10.5)
127:
128: -- Iteration 3 : null data --
129: NULL
130:
131: -- Iteration 4 : bool data --
132: bool(true)
133:
134: -- Iteration 5 : empty string data --
135: string(0) ""
136:
137: -- Iteration 6 : empty array data --
138: bool(false)
139:
140: -- Iteration 7 : string data --
141: string(6) "string"
142:
143: -- Iteration 8 : object data --
144: object(classA)#%d (0) {
145: }
146:
147: -- Iteration 9 : undefined data --
148: NULL
149:
150: -- Iteration 10 : unset data --
151: NULL
152:
153: -- Iteration 11 : resource data --
154: resource(%d) of type (stream)
155: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>