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