Annotation of embedaddon/php/ext/standard/tests/array/asort_object1.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test asort() function : object functionality - sort objects
3: --FILE--
4: <?php
5: /* Prototype : bool asort ( array &$array [, int $asort_flags] )
6: * Description: Sort an array and maintain index association.
7: Elements will be arranged from lowest to highest when this function has completed.
8: * Source code: ext/standard/array.c
9: */
10:
11: /*
12: * testing asort() by providing integer/string object arrays with following flag values
13: * 1. Defualt flag value
14: * 2. SORT_REGULAR - compare items normally
15: */
16:
17: echo "*** Testing asort() : object functionality ***\n";
18:
19: // class declaration for integer objects
20: class for_integer_asort
21: {
22: public $class_value;
23: // initializing object member value
24: function __construct($value){
25: $this->class_value = $value;
26: }
27:
28: }
29:
30: // class declaration for string objects
31: class for_string_asort
32: {
33: public $class_value;
34: // initializing object member value
35: function __construct($value){
36: $this->class_value = $value;
37: }
38:
39: // return string value
40: function __tostring() {
41: return (string)$this->value;
42: }
43:
44: }
45:
46: // array of integer objects
47: $unsorted_int_obj = array (
48: 1 => new for_integer_asort(11), 2 => new for_integer_asort(66),
49: 3 => new for_integer_asort(23), 4 => new for_integer_asort(-5),
50: 5 => new for_integer_asort(0.001), 6 => new for_integer_asort(0)
51: );
52:
53: // array of string objects
54: $unsorted_str_obj = array (
55: "a" => new for_string_asort("axx"), "b" => new for_string_asort("t"),
56: "c" => new for_string_asort("w"), "d" => new for_string_asort("py"),
57: "e" => new for_string_asort("apple"), "f" => new for_string_asort("Orange"),
58: "g" => new for_string_asort("Lemon"), "h" => new for_string_asort("aPPle")
59: );
60:
61:
62: echo "\n-- Testing asort() by supplying various object arrays, 'flag' value is defualt --\n";
63:
64: // testing asort() function by supplying integer object array, flag value is defualt
65: $temp_array = $unsorted_int_obj;
66: var_dump(asort($temp_array) );
67: var_dump($temp_array);
68:
69: // testing asort() function by supplying string object array, flag value is defualt
70: $temp_array = $unsorted_str_obj;
71: var_dump(asort($temp_array) );
72: var_dump($temp_array);
73:
74: echo "\n-- Testing asort() by supplying various object arrays, 'flag' value is SORT_REGULAR --\n";
75: // testing asort() function by supplying integer object array, flag value = SORT_REGULAR
76: $temp_array = $unsorted_int_obj;
77: var_dump(asort($temp_array, SORT_REGULAR) );
78: var_dump($temp_array);
79:
80: // testing asort() function by supplying string object array, flag value = SORT_REGULAR
81: $temp_array = $unsorted_str_obj;
82: var_dump(asort($temp_array, SORT_REGULAR) );
83: var_dump($temp_array);
84:
85: echo "Done\n";
86: ?>
87: --EXPECTF--
88: *** Testing asort() : object functionality ***
89:
90: -- Testing asort() by supplying various object arrays, 'flag' value is defualt --
91: bool(true)
92: array(6) {
93: [4]=>
94: object(for_integer_asort)#%d (1) {
95: ["class_value"]=>
96: int(-5)
97: }
98: [6]=>
99: object(for_integer_asort)#%d (1) {
100: ["class_value"]=>
101: int(0)
102: }
103: [5]=>
104: object(for_integer_asort)#%d (1) {
105: ["class_value"]=>
106: float(0.001)
107: }
108: [1]=>
109: object(for_integer_asort)#%d (1) {
110: ["class_value"]=>
111: int(11)
112: }
113: [3]=>
114: object(for_integer_asort)#%d (1) {
115: ["class_value"]=>
116: int(23)
117: }
118: [2]=>
119: object(for_integer_asort)#%d (1) {
120: ["class_value"]=>
121: int(66)
122: }
123: }
124: bool(true)
125: array(8) {
126: ["g"]=>
127: object(for_string_asort)#%d (1) {
128: ["class_value"]=>
129: string(5) "Lemon"
130: }
131: ["f"]=>
132: object(for_string_asort)#%d (1) {
133: ["class_value"]=>
134: string(6) "Orange"
135: }
136: ["h"]=>
137: object(for_string_asort)#%d (1) {
138: ["class_value"]=>
139: string(5) "aPPle"
140: }
141: ["e"]=>
142: object(for_string_asort)#%d (1) {
143: ["class_value"]=>
144: string(5) "apple"
145: }
146: ["a"]=>
147: object(for_string_asort)#%d (1) {
148: ["class_value"]=>
149: string(3) "axx"
150: }
151: ["d"]=>
152: object(for_string_asort)#%d (1) {
153: ["class_value"]=>
154: string(2) "py"
155: }
156: ["b"]=>
157: object(for_string_asort)#%d (1) {
158: ["class_value"]=>
159: string(1) "t"
160: }
161: ["c"]=>
162: object(for_string_asort)#%d (1) {
163: ["class_value"]=>
164: string(1) "w"
165: }
166: }
167:
168: -- Testing asort() by supplying various object arrays, 'flag' value is SORT_REGULAR --
169: bool(true)
170: array(6) {
171: [4]=>
172: object(for_integer_asort)#%d (1) {
173: ["class_value"]=>
174: int(-5)
175: }
176: [6]=>
177: object(for_integer_asort)#%d (1) {
178: ["class_value"]=>
179: int(0)
180: }
181: [5]=>
182: object(for_integer_asort)#%d (1) {
183: ["class_value"]=>
184: float(0.001)
185: }
186: [1]=>
187: object(for_integer_asort)#%d (1) {
188: ["class_value"]=>
189: int(11)
190: }
191: [3]=>
192: object(for_integer_asort)#%d (1) {
193: ["class_value"]=>
194: int(23)
195: }
196: [2]=>
197: object(for_integer_asort)#%d (1) {
198: ["class_value"]=>
199: int(66)
200: }
201: }
202: bool(true)
203: array(8) {
204: ["g"]=>
205: object(for_string_asort)#%d (1) {
206: ["class_value"]=>
207: string(5) "Lemon"
208: }
209: ["f"]=>
210: object(for_string_asort)#%d (1) {
211: ["class_value"]=>
212: string(6) "Orange"
213: }
214: ["h"]=>
215: object(for_string_asort)#%d (1) {
216: ["class_value"]=>
217: string(5) "aPPle"
218: }
219: ["e"]=>
220: object(for_string_asort)#%d (1) {
221: ["class_value"]=>
222: string(5) "apple"
223: }
224: ["a"]=>
225: object(for_string_asort)#%d (1) {
226: ["class_value"]=>
227: string(3) "axx"
228: }
229: ["d"]=>
230: object(for_string_asort)#%d (1) {
231: ["class_value"]=>
232: string(2) "py"
233: }
234: ["b"]=>
235: object(for_string_asort)#%d (1) {
236: ["class_value"]=>
237: string(1) "t"
238: }
239: ["c"]=>
240: object(for_string_asort)#%d (1) {
241: ["class_value"]=>
242: string(1) "w"
243: }
244: }
245: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>