1--TEST--
2Test usort() function : usage variations - use built in functions as $cmp_function arg
3--FILE--
4<?php
5/* Prototype  : bool usort(array $array_arg, string $cmp_function)
6 * Description: Sort an array by values using a user-defined comparison function
7 * Source code: ext/standard/array.c
8 */
9
10/*
11 * Test usort() when comparison function is:
12 * 1. a built in comparison function
13 * 2. a language construct
14 */
15
16echo "*** Testing usort() : usage variation ***\n";
17
18// Initializing variables
19$array_arg = array("b" => "Banana", "m" => "Mango", "a" => "apple",
20                   "p" => "Pineapple", "o" => "orange");
21
22// Testing library functions as comparison function
23echo "\n-- Testing usort() with built-in 'cmp_function': strcasecmp() --\n";
24$temp_array1 = $array_arg;
25var_dump( usort($temp_array1, 'strcasecmp') );
26var_dump($temp_array1);
27
28echo "\n-- Testing usort() with built-in 'cmp_function': strcmp() --\n";
29$temp_array2 = $array_arg;
30var_dump( usort($temp_array2, 'strcmp') );
31var_dump($temp_array2);
32
33// Testing with language construct as comparison function
34echo "\n-- Testing usort() with language construct as 'cmp_function' --\n";
35$temp_array3 = $array_arg;
36var_dump( usort($temp_array3, 'echo') );
37
38echo "\n-- Testing usort() with language construct as 'cmp_function' --\n";
39$temp_array4 = $array_arg;
40var_dump( usort($temp_array4, 'exit') );
41?>
42===DONE===
43--EXPECTF--
44*** Testing usort() : usage variation ***
45
46-- Testing usort() with built-in 'cmp_function': strcasecmp() --
47bool(true)
48array(5) {
49  [0]=>
50  string(5) "apple"
51  [1]=>
52  string(6) "Banana"
53  [2]=>
54  string(5) "Mango"
55  [3]=>
56  string(6) "orange"
57  [4]=>
58  string(9) "Pineapple"
59}
60
61-- Testing usort() with built-in 'cmp_function': strcmp() --
62bool(true)
63array(5) {
64  [0]=>
65  string(6) "Banana"
66  [1]=>
67  string(5) "Mango"
68  [2]=>
69  string(9) "Pineapple"
70  [3]=>
71  string(5) "apple"
72  [4]=>
73  string(6) "orange"
74}
75
76-- Testing usort() with language construct as 'cmp_function' --
77
78Warning: usort() expects parameter 2 to be a valid callback, function 'echo' not found or invalid function name in %s on line %d
79NULL
80
81-- Testing usort() with language construct as 'cmp_function' --
82
83Warning: usort() expects parameter 2 to be a valid callback, function 'exit' not found or invalid function name in %s on line %d
84NULL
85===DONE===