Annotation of embedaddon/php/ext/standard/tests/array/asort_object1.phpt, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>