Annotation of embedaddon/php/ext/standard/tests/array/asort_object2.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test asort() function : object functionality - sorting objects with diff. accessibility of member vars
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 $public_class_value;
23: private $private_class_value;
24: protected $protected_class_value;
25: // initializing object member value
26: function __construct($value1, $value2,$value3){
27: $this->public_class_value = $value1;
28: $this->private_class_value = $value2;
29: $this->protected_class_value = $value3;
30: }
31:
32: }
33:
34: // class declaration for string objects
35: class for_string_asort
36: {
37: public $public_class_value;
38: private $private_class_value;
39: protected $protected_class_value;
40: // initializing object member value
41: function __construct($value1, $value2,$value3){
42: $this->public_class_value = $value1;
43: $this->private_class_value = $value2;
44: $this->protected_class_value = $value3;
45: }
46:
47: // return string value
48: function __tostring() {
49: return (string)$this->value;
50: }
51: }
52:
53: // array of integer objects
54: $unsorted_int_obj = array (
55: 1 => new for_integer_asort(11, 33,2), 2 => new for_integer_asort(44, 66,3),
56: 3 => new for_integer_asort(23, 32,6), 4 => new for_integer_asort(-88, -5,-4),
57: );
58:
59: // array of string objects
60: $unsorted_str_obj = array (
61: "a" => new for_string_asort("axx","AXX","d"), "b" => new for_string_asort("T", "t","q"),
62: "c" => new for_string_asort("w", "W","c"), "d" => new for_string_asort("PY", "py","s"),
63: );
64:
65:
66: echo "\n-- Testing asort() by supplying various object arrays, 'flag' value is default --\n";
67:
68: // testing asort() function by supplying integer object array, flag value is default
69: $temp_array = $unsorted_int_obj;
70: var_dump(asort($temp_array) );
71: var_dump($temp_array);
72:
73: // testing asort() function by supplying string object array, flag value is default
74: $temp_array = $unsorted_str_obj;
75: var_dump(asort($temp_array) );
76: var_dump($temp_array);
77:
78: echo "\n-- Testing asort() by supplying various object arrays, 'flag' value is SORT_REGULAR --\n";
79: // testing asort() function by supplying integer object array, flag value = SORT_REGULAR
80: $temp_array = $unsorted_int_obj;
81: var_dump(asort($temp_array, SORT_REGULAR) );
82: var_dump($temp_array);
83:
84: // testing asort() function by supplying string object array, flag value = SORT_REGULAR
85: $temp_array = $unsorted_str_obj;
86: var_dump(asort($temp_array, SORT_REGULAR) );
87: var_dump($temp_array);
88:
89: echo "Done\n";
90: ?>
91: --EXPECTF--
92: *** Testing asort() : object functionality ***
93:
94: -- Testing asort() by supplying various object arrays, 'flag' value is default --
95: bool(true)
96: array(4) {
97: [4]=>
98: object(for_integer_asort)#%d (3) {
99: ["public_class_value"]=>
100: int(-88)
101: ["private_class_value":"for_integer_asort":private]=>
102: int(-5)
103: ["protected_class_value":protected]=>
104: int(-4)
105: }
106: [1]=>
107: object(for_integer_asort)#%d (3) {
108: ["public_class_value"]=>
109: int(11)
110: ["private_class_value":"for_integer_asort":private]=>
111: int(33)
112: ["protected_class_value":protected]=>
113: int(2)
114: }
115: [3]=>
116: object(for_integer_asort)#%d (3) {
117: ["public_class_value"]=>
118: int(23)
119: ["private_class_value":"for_integer_asort":private]=>
120: int(32)
121: ["protected_class_value":protected]=>
122: int(6)
123: }
124: [2]=>
125: object(for_integer_asort)#%d (3) {
126: ["public_class_value"]=>
127: int(44)
128: ["private_class_value":"for_integer_asort":private]=>
129: int(66)
130: ["protected_class_value":protected]=>
131: int(3)
132: }
133: }
134: bool(true)
135: array(4) {
136: ["d"]=>
137: object(for_string_asort)#%d (3) {
138: ["public_class_value"]=>
139: string(2) "PY"
140: ["private_class_value":"for_string_asort":private]=>
141: string(2) "py"
142: ["protected_class_value":protected]=>
143: string(1) "s"
144: }
145: ["b"]=>
146: object(for_string_asort)#%d (3) {
147: ["public_class_value"]=>
148: string(1) "T"
149: ["private_class_value":"for_string_asort":private]=>
150: string(1) "t"
151: ["protected_class_value":protected]=>
152: string(1) "q"
153: }
154: ["a"]=>
155: object(for_string_asort)#%d (3) {
156: ["public_class_value"]=>
157: string(3) "axx"
158: ["private_class_value":"for_string_asort":private]=>
159: string(3) "AXX"
160: ["protected_class_value":protected]=>
161: string(1) "d"
162: }
163: ["c"]=>
164: object(for_string_asort)#%d (3) {
165: ["public_class_value"]=>
166: string(1) "w"
167: ["private_class_value":"for_string_asort":private]=>
168: string(1) "W"
169: ["protected_class_value":protected]=>
170: string(1) "c"
171: }
172: }
173:
174: -- Testing asort() by supplying various object arrays, 'flag' value is SORT_REGULAR --
175: bool(true)
176: array(4) {
177: [4]=>
178: object(for_integer_asort)#%d (3) {
179: ["public_class_value"]=>
180: int(-88)
181: ["private_class_value":"for_integer_asort":private]=>
182: int(-5)
183: ["protected_class_value":protected]=>
184: int(-4)
185: }
186: [1]=>
187: object(for_integer_asort)#%d (3) {
188: ["public_class_value"]=>
189: int(11)
190: ["private_class_value":"for_integer_asort":private]=>
191: int(33)
192: ["protected_class_value":protected]=>
193: int(2)
194: }
195: [3]=>
196: object(for_integer_asort)#%d (3) {
197: ["public_class_value"]=>
198: int(23)
199: ["private_class_value":"for_integer_asort":private]=>
200: int(32)
201: ["protected_class_value":protected]=>
202: int(6)
203: }
204: [2]=>
205: object(for_integer_asort)#%d (3) {
206: ["public_class_value"]=>
207: int(44)
208: ["private_class_value":"for_integer_asort":private]=>
209: int(66)
210: ["protected_class_value":protected]=>
211: int(3)
212: }
213: }
214: bool(true)
215: array(4) {
216: ["d"]=>
217: object(for_string_asort)#%d (3) {
218: ["public_class_value"]=>
219: string(2) "PY"
220: ["private_class_value":"for_string_asort":private]=>
221: string(2) "py"
222: ["protected_class_value":protected]=>
223: string(1) "s"
224: }
225: ["b"]=>
226: object(for_string_asort)#%d (3) {
227: ["public_class_value"]=>
228: string(1) "T"
229: ["private_class_value":"for_string_asort":private]=>
230: string(1) "t"
231: ["protected_class_value":protected]=>
232: string(1) "q"
233: }
234: ["a"]=>
235: object(for_string_asort)#%d (3) {
236: ["public_class_value"]=>
237: string(3) "axx"
238: ["private_class_value":"for_string_asort":private]=>
239: string(3) "AXX"
240: ["protected_class_value":protected]=>
241: string(1) "d"
242: }
243: ["c"]=>
244: object(for_string_asort)#%d (3) {
245: ["public_class_value"]=>
246: string(1) "w"
247: ["private_class_value":"for_string_asort":private]=>
248: string(1) "W"
249: ["protected_class_value":protected]=>
250: string(1) "c"
251: }
252: }
253: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>