File tree Expand file tree Collapse file tree
ext/standard/tests/array/sort Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ --TEST--
2+ Sorting single-element arrays does not invoke the comparison function
3+ --FILE--
4+ <?php
5+
6+ $ calls = 0 ;
7+ $ compare = static function ($ a , $ b ) use (&$ calls ) {
8+ $ calls ++;
9+ return $ a <=> $ b ;
10+ };
11+
12+ $ array = [42 ];
13+ // Keep the array packed and without holes, but leave the next free index at 11.
14+ $ array [10 ] = 99 ;
15+ unset($ array [10 ]);
16+ next ($ array );
17+ var_dump (usort ($ array , $ compare ));
18+ var_dump ($ array , key ($ array ));
19+ $ array [] = 43 ;
20+ var_dump ($ array );
21+
22+ $ array = ['answer ' => 42 ];
23+ next ($ array );
24+ var_dump (usort ($ array , $ compare ));
25+ var_dump ($ array , key ($ array ));
26+ $ array [] = 43 ;
27+ var_dump ($ array );
28+
29+ var_dump ($ calls );
30+
31+ ?>
32+ --EXPECT--
33+ bool(true)
34+ array(1) {
35+ [0]=>
36+ int(42)
37+ }
38+ int(0)
39+ array(2) {
40+ [0]=>
41+ int(42)
42+ [1]=>
43+ int(43)
44+ }
45+ bool(true)
46+ array(1) {
47+ [0]=>
48+ int(42)
49+ }
50+ int(0)
51+ array(2) {
52+ [0]=>
53+ int(42)
54+ [1]=>
55+ int(43)
56+ }
57+ int(0)
You can’t perform that action at this time.
0 commit comments