3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_GET['sortBy'] = 'B'; function get_permalink() { return 'someurl'; } function get_terms($array) { return ['foo', 'bar', 'öle', 'can']; } function esc_html($string) { return htmlspecialchars($string, ENT_QUOTES); } function alpha_pagination() { $chars = array_fill_keys(range('A', 'Z'), false); foreach (get_terms(['taxonomy' => 'unknown', 'hide_empty' => true]) as $tax) { $chars[mb_strtoupper(mb_substr($tax, 0, 1))] = true; } ksort($chars); foreach ($chars as $char => $hasTerms) { $selected = ($_GET['sortBy'] ?? '_') === $char ? ' selected' : ''; if ($hasTerms) { printf( '<a class="button%s" href="%s?%s">%s</a>', $selected, get_permalink(), http_build_query(['sortby' => $char]), esc_html($char) ); } else { printf( '<span class="button disabled%s">%s</span>', $selected, esc_html($char) ); } echo "\n"; } } alpha_pagination();
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
<span class="button disabled">A</span> <a class="button selected" href="someurl?sortby=B">B</a> <a class="button" href="someurl?sortby=C">C</a> <span class="button disabled">D</span> <span class="button disabled">E</span> <a class="button" href="someurl?sortby=F">F</a> <span class="button disabled">G</span> <span class="button disabled">H</span> <span class="button disabled">I</span> <span class="button disabled">J</span> <span class="button disabled">K</span> <span class="button disabled">L</span> <span class="button disabled">M</span> <span class="button disabled">N</span> <span class="button disabled">O</span> <span class="button disabled">P</span> <span class="button disabled">Q</span> <span class="button disabled">R</span> <span class="button disabled">S</span> <span class="button disabled">T</span> <span class="button disabled">U</span> <span class="button disabled">V</span> <span class="button disabled">W</span> <span class="button disabled">X</span> <span class="button disabled">Y</span> <span class="button disabled">Z</span> <a class="button" href="someurl?sortby=%C3%96">Ö</a>

preferences:
95.33 ms | 404 KiB | 62 Q