1--TEST-- 2Test arsort() function : object functionality - sorting objects with diff. accessibility of member vars 3--FILE-- 4<?php 5/* Prototype : bool arsort ( array &$array [, int $asort_flags] ) 6 * Description: Sort an array and maintain index association. 7 Elements will be arranged from highest to lowest when this function has completed. 8 * Source code: ext/standard/array.c 9*/ 10 11/* 12 * testing arsort() by providing integer/string object arrays with following flag values 13 * 1. Defualt flag value 14 2. SORT_REGULAR - compare items normally 15*/ 16 17echo "*** Testing arsort() : object functionality ***\n"; 18 19// class declaration for integer objects 20class for_integer_arsort 21{ 22 public $public_class_value; 23 private $private_class_value; 24 protected $protected_class_value; 25 // initializing object member value 26 function __construct($value1, $value2,$value3){ 27 $this->public_class_value = $value1; 28 $this->private_class_value = $value2; 29 $this->protected_class_value = $value3; 30 } 31 32} 33 34// class declaration for string objects 35class for_string_arsort 36{ 37 public $public_class_value; 38 private $private_class_value; 39 protected $protected_class_value; 40 // initializing object member value 41 function __construct($value1, $value2,$value3){ 42 $this->public_class_value = $value1; 43 $this->private_class_value = $value2; 44 $this->protected_class_value = $value3; 45 } 46 47 // return string value 48 function __tostring() { 49 return (string)$this->value; 50 } 51} 52 53// array of integer objects 54$unsorted_int_obj = array ( 55 1 => new for_integer_arsort(11, 33,2), 2 => new for_integer_asort(44, 66,3), 56 3 => new for_integer_arsort(23, 32,6), 4 => new for_integer_asort(-88, -5,-4), 57); 58 59// array of string objects 60$unsorted_str_obj = array ( 61 "a" => new for_string_arsort("axx","AXX","d"), "b" => new for_string_asort("T", "t","q"), 62 "c" => new for_string_arsort("w", "W","c"), "d" => new for_string_asort("PY", "py","s"), 63); 64 65 66echo "\n-- Testing arsort() by supplying various object arrays, 'flag' value is default --\n"; 67 68// testing arsort() function by supplying integer object array, flag value is default 69$temp_array = $unsorted_int_obj; 70var_dump(arsort($temp_array) ); 71var_dump($temp_array); 72 73// testing arsort() function by supplying string object array, flag value is default 74$temp_array = $unsorted_str_obj; 75var_dump(arsort($temp_array) ); 76var_dump($temp_array); 77 78echo "\n-- Testing arsort() by supplying various object arrays, 'flag' value is SORT_REGULAR --\n"; 79// testing arsort() function by supplying integer object array, flag value = SORT_REGULAR 80$temp_array = $unsorted_int_obj; 81var_dump(arsort($temp_array, SORT_REGULAR) ); 82var_dump($temp_array); 83 84// testing arsort() function by supplying string object array, flag value = SORT_REGULAR 85$temp_array = $unsorted_str_obj; 86var_dump(arsort($temp_array, SORT_REGULAR) ); 87var_dump($temp_array); 88 89echo "Done\n"; 90?> 91--EXPECTF-- 92*** Testing arsort() : object functionality *** 93 94Fatal error: Uncaught Error: Class 'for_integer_asort' not found in %sarsort_object2.php:%d 95Stack trace: 96#0 {main} 97 thrown in %sarsort_object2.php on line %d