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

1.1       misho       1: --TEST--
                      2: Test sort() function : object functionality - sorting objects with diff. accessibility of member vars
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : bool sort ( array &$array [, int $sort_flags] )
                      6:  * Description: This function sorts an array. 
                      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 sort() by providing integer/string object arrays with flag values are defualt, SORT_REGULAR
                     13: */
                     14: 
                     15: echo "*** Testing sort() : object functionality ***\n";
                     16: 
                     17: // class declaration for integer objects
                     18: class for_integer_sort
                     19: {
                     20:   public $public_class_value;
                     21:   private $private_class_value;
                     22:   protected $protected_class_value;   
                     23: 
                     24:   // initializing object member value
                     25:   function __construct($value1, $value2,$value3){
                     26:     $this->public_class_value = $value1;
                     27:     $this->private_class_value = $value2;
                     28:     $this->protected_class_value = $value3; 
                     29:   }
                     30: }
                     31: 
                     32: // class declaration for string objects
                     33: class for_string_sort
                     34: {
                     35:   public $public_class_value;
                     36:   private $private_class_value;
                     37:   protected $protected_class_value;
                     38:   // initializing object member value
                     39:   function __construct($value1, $value2,$value3){
                     40:     $this->public_class_value = $value1;
                     41:     $this->private_class_value = $value2;
                     42:     $this->protected_class_value = $value3;
                     43:   }
                     44: 
                     45:   // return string value
                     46:   function __tostring() {
                     47:    return (string)$this->value;
                     48:   }
                     49: 
                     50: }
                     51: 
                     52: // array of integer objects
                     53: $unsorted_int_obj = array( 
                     54:   new for_integer_sort(11,33,30),
                     55:   new for_integer_sort(66,44,4),
                     56:   new for_integer_sort(-88,-5,5),
                     57:   new for_integer_sort(0.001,99.5,0.1)
                     58: );
                     59: 
                     60: // array of string objects
                     61: $unsorted_str_obj = array ( 
                     62:   new for_string_sort("axx","AXX","ass"), 
                     63:   new for_string_sort("t","eee","abb"),
                     64:   new for_string_sort("w","W", "c"),
                     65:   new for_string_sort("py","PY", "pt"),
                     66: );
                     67: 
                     68: 
                     69: echo "\n-- Testing sort() by supplying various object arrays, 'flag' value is defualt --\n";
                     70: 
                     71: // testing sort() function by supplying integer object array, flag value is defualt
                     72: $temp_array = $unsorted_int_obj;
                     73: var_dump(sort($temp_array) );
                     74: var_dump($temp_array);
                     75: 
                     76: // testing sort() function by supplying string object array, flag value is defualt
                     77: $temp_array = $unsorted_str_obj;
                     78: var_dump(sort($temp_array) );
                     79: var_dump($temp_array);
                     80: 
                     81: echo "\n-- Testing sort() by supplying various object arrays, 'flag' value is SORT_REGULAR --\n";
                     82: // testing sort() function by supplying integer object array, flag value = SORT_REGULAR
                     83: $temp_array = $unsorted_int_obj;
                     84: var_dump(sort($temp_array, SORT_REGULAR) );
                     85: var_dump($temp_array);
                     86: 
                     87: // testing sort() function by supplying string object array, flag value = SORT_REGULAR
                     88: $temp_array = $unsorted_str_obj;
                     89: var_dump(sort($temp_array, SORT_REGULAR) );
                     90: var_dump($temp_array);
                     91: 
                     92: echo "Done\n";
                     93: ?>
                     94: --EXPECTF--
                     95: *** Testing sort() : object functionality ***
                     96: 
                     97: -- Testing sort() by supplying various object arrays, 'flag' value is defualt --
                     98: bool(true)
                     99: array(4) {
                    100:   [0]=>
                    101:   object(for_integer_sort)#%d (3) {
                    102:     ["public_class_value"]=>
                    103:     int(-88)
                    104:     ["private_class_value":"for_integer_sort":private]=>
                    105:     int(-5)
                    106:     ["protected_class_value":protected]=>
                    107:     int(5)
                    108:   }
                    109:   [1]=>
                    110:   object(for_integer_sort)#%d (3) {
                    111:     ["public_class_value"]=>
                    112:     float(0.001)
                    113:     ["private_class_value":"for_integer_sort":private]=>
                    114:     float(99.5)
                    115:     ["protected_class_value":protected]=>
                    116:     float(0.1)
                    117:   }
                    118:   [2]=>
                    119:   object(for_integer_sort)#%d (3) {
                    120:     ["public_class_value"]=>
                    121:     int(11)
                    122:     ["private_class_value":"for_integer_sort":private]=>
                    123:     int(33)
                    124:     ["protected_class_value":protected]=>
                    125:     int(30)
                    126:   }
                    127:   [3]=>
                    128:   object(for_integer_sort)#%d (3) {
                    129:     ["public_class_value"]=>
                    130:     int(66)
                    131:     ["private_class_value":"for_integer_sort":private]=>
                    132:     int(44)
                    133:     ["protected_class_value":protected]=>
                    134:     int(4)
                    135:   }
                    136: }
                    137: bool(true)
                    138: array(4) {
                    139:   [0]=>
                    140:   object(for_string_sort)#%d (3) {
                    141:     ["public_class_value"]=>
                    142:     string(3) "axx"
                    143:     ["private_class_value":"for_string_sort":private]=>
                    144:     string(3) "AXX"
                    145:     ["protected_class_value":protected]=>
                    146:     string(3) "ass"
                    147:   }
                    148:   [1]=>
                    149:   object(for_string_sort)#%d (3) {
                    150:     ["public_class_value"]=>
                    151:     string(2) "py"
                    152:     ["private_class_value":"for_string_sort":private]=>
                    153:     string(2) "PY"
                    154:     ["protected_class_value":protected]=>
                    155:     string(2) "pt"
                    156:   }
                    157:   [2]=>
                    158:   object(for_string_sort)#%d (3) {
                    159:     ["public_class_value"]=>
                    160:     string(1) "t"
                    161:     ["private_class_value":"for_string_sort":private]=>
                    162:     string(3) "eee"
                    163:     ["protected_class_value":protected]=>
                    164:     string(3) "abb"
                    165:   }
                    166:   [3]=>
                    167:   object(for_string_sort)#%d (3) {
                    168:     ["public_class_value"]=>
                    169:     string(1) "w"
                    170:     ["private_class_value":"for_string_sort":private]=>
                    171:     string(1) "W"
                    172:     ["protected_class_value":protected]=>
                    173:     string(1) "c"
                    174:   }
                    175: }
                    176: 
                    177: -- Testing sort() by supplying various object arrays, 'flag' value is SORT_REGULAR --
                    178: bool(true)
                    179: array(4) {
                    180:   [0]=>
                    181:   object(for_integer_sort)#%d (3) {
                    182:     ["public_class_value"]=>
                    183:     int(-88)
                    184:     ["private_class_value":"for_integer_sort":private]=>
                    185:     int(-5)
                    186:     ["protected_class_value":protected]=>
                    187:     int(5)
                    188:   }
                    189:   [1]=>
                    190:   object(for_integer_sort)#%d (3) {
                    191:     ["public_class_value"]=>
                    192:     float(0.001)
                    193:     ["private_class_value":"for_integer_sort":private]=>
                    194:     float(99.5)
                    195:     ["protected_class_value":protected]=>
                    196:     float(0.1)
                    197:   }
                    198:   [2]=>
                    199:   object(for_integer_sort)#%d (3) {
                    200:     ["public_class_value"]=>
                    201:     int(11)
                    202:     ["private_class_value":"for_integer_sort":private]=>
                    203:     int(33)
                    204:     ["protected_class_value":protected]=>
                    205:     int(30)
                    206:   }
                    207:   [3]=>
                    208:   object(for_integer_sort)#%d (3) {
                    209:     ["public_class_value"]=>
                    210:     int(66)
                    211:     ["private_class_value":"for_integer_sort":private]=>
                    212:     int(44)
                    213:     ["protected_class_value":protected]=>
                    214:     int(4)
                    215:   }
                    216: }
                    217: bool(true)
                    218: array(4) {
                    219:   [0]=>
                    220:   object(for_string_sort)#%d (3) {
                    221:     ["public_class_value"]=>
                    222:     string(3) "axx"
                    223:     ["private_class_value":"for_string_sort":private]=>
                    224:     string(3) "AXX"
                    225:     ["protected_class_value":protected]=>
                    226:     string(3) "ass"
                    227:   }
                    228:   [1]=>
                    229:   object(for_string_sort)#%d (3) {
                    230:     ["public_class_value"]=>
                    231:     string(2) "py"
                    232:     ["private_class_value":"for_string_sort":private]=>
                    233:     string(2) "PY"
                    234:     ["protected_class_value":protected]=>
                    235:     string(2) "pt"
                    236:   }
                    237:   [2]=>
                    238:   object(for_string_sort)#%d (3) {
                    239:     ["public_class_value"]=>
                    240:     string(1) "t"
                    241:     ["private_class_value":"for_string_sort":private]=>
                    242:     string(3) "eee"
                    243:     ["protected_class_value":protected]=>
                    244:     string(3) "abb"
                    245:   }
                    246:   [3]=>
                    247:   object(for_string_sort)#%d (3) {
                    248:     ["public_class_value"]=>
                    249:     string(1) "w"
                    250:     ["private_class_value":"for_string_sort":private]=>
                    251:     string(1) "W"
                    252:     ["protected_class_value":protected]=>
                    253:     string(1) "c"
                    254:   }
                    255: }
                    256: Done

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