Annotation of embedaddon/php/ext/standard/tests/array/krsort_object.phpt, revision 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>