????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 18.188.184.3 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/standard/tests/array/ |
Upload File : |
--TEST-- Test uasort() function : object functionality - sort diff. objects --FILE-- <?php /* Prototype : bool uasort(array $array_arg, string $cmp_function) * Description: Sort an array with a user-defined comparison function and maintain index association * Source code: ext/standard/array.c * /* * This testcase tests uasort() functionality with different objects * Objects of different classes: * simple class, * child class, * empty class & * static class */ echo "*** Testing uasort() : object functionality ***\n"; // comparison function /* Prototype : int cmp_function(mixed $value1, mixed $value2) * Parameters : $value1 and $value2 - values to be compared * Return value : 0 - if both values are same * 1 - if value1 is greater than value2 * -1 - if value1 is less than value2 * Description : compares value1 and value2 */ function cmp_function($value1, $value2) { if($value1 == $value2) { return 0; } else if($value1 > $value2) { return 1; } else return -1; } // Simple class with single member variable class SimpleClass { private $int_value; public function __construct($value) { $this->int_value = $value; } } // Class without any member class EmptyClass { } // Class with static member class StaticClass { public static $static_value; public function __construct($value) { StaticClass::$static_value = $value; } } // Abstract class abstract class AbstractClass { public $pub_value; public abstract function abstractMethod(); } // Child class extending abstract class class ChildClass extends AbstractClass { public $child_value = 100; public function abstractMethod() { $pub_value = 5; } public function __construct($value) { $this->child_value = $value; } } // Testing uasort with StaticClass objects as elements of 'array_arg' echo "-- Testing uasort() with StaticClass objects --\n"; $array_arg = array( 0 => new StaticClass(20), 1 => new StaticClass(50), 2 => new StaticClass(15), 3 => new StaticClass(70), ); var_dump( uasort($array_arg, 'cmp_function') ); var_dump($array_arg); // Testing uasort with EmptyClass objects as elements of 'array_arg' echo "-- Testing uasort() with EmptyClass objects --\n"; $array_arg = array( 0 => new EmptyClass(), 1 => new EmptyClass(), 2 => new EmptyClass(), 3 => new EmptyClass(), ); var_dump( uasort($array_arg, 'cmp_function') ); var_dump($array_arg); // Testing uasort with ChildClass objects as elements of 'array_arg' echo "-- Testing uasort() with ChildClass objects --\n"; $array_arg = array( 0 => new ChildClass(20), 1 => new ChildClass(500), 2 => new ChildClass(15), 3 => new ChildClass(700), ); var_dump( uasort($array_arg, 'cmp_function') ); var_dump($array_arg); echo "Done" ?> --EXPECTF-- *** Testing uasort() : object functionality *** -- Testing uasort() with StaticClass objects -- bool(true) array(4) { [3]=> object(StaticClass)#%d (0) { } [2]=> object(StaticClass)#%d (0) { } [1]=> object(StaticClass)#%d (0) { } [0]=> object(StaticClass)#%d (0) { } } -- Testing uasort() with EmptyClass objects -- bool(true) array(4) { [3]=> object(EmptyClass)#%d (0) { } [2]=> object(EmptyClass)#%d (0) { } [1]=> object(EmptyClass)#%d (0) { } [0]=> object(EmptyClass)#%d (0) { } } -- Testing uasort() with ChildClass objects -- bool(true) array(4) { [2]=> object(ChildClass)#%d (2) { ["child_value"]=> int(15) ["pub_value"]=> NULL } [0]=> object(ChildClass)#%d (2) { ["child_value"]=> int(20) ["pub_value"]=> NULL } [1]=> object(ChildClass)#%d (2) { ["child_value"]=> int(500) ["pub_value"]=> NULL } [3]=> object(ChildClass)#%d (2) { ["child_value"]=> int(700) ["pub_value"]=> NULL } } Done