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