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