Annotation of embedaddon/php/ext/standard/tests/array/usort_variation5.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test usort() function : usage variations - string data
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: * Pass arrays of string data to usort() to test how it is re-ordered
12: */
13:
14: echo "*** Testing usort() : usage variation ***\n";
15:
16: function cmp_function($value1, $value2)
17: {
18: if($value1 == $value2) {
19: return 0;
20: }
21: else if($value1 > $value2) {
22: return 1;
23: }
24: else {
25: return -1;
26: }
27: }
28:
29: // Different heredoc strings to be sorted
30: $empty_heredoc =<<<EOT
31: EOT;
32:
33: $simple_heredoc1 =<<<EOT
34: Heredoc
35: EOT;
36:
37: $simple_heredoc2 =<<<EOT
38: HEREDOC
39: EOT;
40:
41: $multiline_heredoc =<<<EOT
42: heredoc string\twith!@# and 123
43: Test this!!!
44: EOT;
45:
46: // Single quoted strings
47: $single_quoted_values = array(
48: 0 => ' ', 1 => 'test', 3 => 'Hello', 4 => 'HELLO',
49: 5 => '', 6 => '\t', 7 => '0', 8 => '123Hello',
50: 9 => '\'', 10 => '@#$%'
51: );
52:
53: echo "\n-- Sorting Single Quoted String values --\n";
54: var_dump( usort($single_quoted_values, 'cmp_function') );
55: var_dump($single_quoted_values);
56:
57: // Double quoted strings
58: $double_quoted_values = array(
59: 0 => " ", 1 => "test", 3 => "Hello", 4 => "HELLO",
60: 5 => "", 6 => "\t", 7 => "0", 8 => "123Hello",
61: 9 => "\"", 10 => "@#$%"
62: );
63:
64: echo "\n-- Sorting Double Quoted String values --\n";
65: var_dump( usort($double_quoted_values, 'cmp_function') );
66: var_dump($double_quoted_values);
67:
68: // Heredoc strings
69: $heredoc_values = array(0 => $empty_heredoc, 1 => $simple_heredoc1,
70: 2 => $simple_heredoc2, 3 => $multiline_heredoc);
71:
72: echo "\n-- Sorting Heredoc String values --\n";
73: var_dump( usort($heredoc_values, 'cmp_function') );
74: var_dump($heredoc_values);
75: ?>
76: ===DONE===
77: --EXPECTF--
78: *** Testing usort() : usage variation ***
79:
80: -- Sorting Single Quoted String values --
81: bool(true)
82: array(10) {
83: [0]=>
84: string(0) ""
85: [1]=>
86: string(1) " "
87: [2]=>
88: string(1) "'"
89: [3]=>
90: string(1) "0"
91: [4]=>
92: string(8) "123Hello"
93: [5]=>
94: string(4) "@#$%"
95: [6]=>
96: string(5) "HELLO"
97: [7]=>
98: string(5) "Hello"
99: [8]=>
100: string(2) "\t"
101: [9]=>
102: string(4) "test"
103: }
104:
105: -- Sorting Double Quoted String values --
106: bool(true)
107: array(10) {
108: [0]=>
109: string(0) ""
110: [1]=>
111: string(1) " "
112: [2]=>
113: string(1) " "
114: [3]=>
115: string(1) """
116: [4]=>
117: string(1) "0"
118: [5]=>
119: string(8) "123Hello"
120: [6]=>
121: string(4) "@#$%"
122: [7]=>
123: string(5) "HELLO"
124: [8]=>
125: string(5) "Hello"
126: [9]=>
127: string(4) "test"
128: }
129:
130: -- Sorting Heredoc String values --
131: bool(true)
132: array(4) {
133: [0]=>
134: string(0) ""
135: [1]=>
136: string(7) "HEREDOC"
137: [2]=>
138: string(7) "Heredoc"
139: [3]=>
140: string(%d) "heredoc string with!@# and 123
141: Test this!!!"
142: }
143: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>