3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Test { public $page = 1; private $range = 4; public function getNumbers($pagesCount) { $numbers = []; $rangeL = $this->page - $this->range - 1; if ($rangeL < 1) { $rangeL = 1; } $rangeR = $rangeL + $this->range * 2 + 1; if ($rangeR > $pagesCount) { $rangeR = $pagesCount; $rangeL = $pagesCount - $this->range * 2 + 1; if ($rangeL < 1) { $rangeL = 1; } } if ($rangeL > 1) { $numbers[] = 1; if ($rangeL > 2) { $rangeL++; $numbers[] = false; } } for ($i = $rangeL; $i <= $rangeR; $i++) { $numbers[] = $i; } if ($rangeR < $pagesCount) { if ($rangeR < $pagesCount - 2) { $numbers[] = false; } else { $numbers[] = $pagesCount - 1; } $numbers[] = $pagesCount; } return $numbers; } } $test = new Test; $test->page = 88; print_r($test->getNumbers(100)); $test->page = 7; print_r($test->getNumbers(100));

preferences:
15.95 ms | 402 KiB | 5 Q