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>