1,'previous'=>$current-1,'next'=>$current+1,'last'=>$last,default=>$current}; $page=max(1,min($last,$page));$offset=($page-1)*$size; return ['size'=>$size,'page'=>$page,'offset'=>$offset,'start'=>$count?$offset+1:0,'end'=>min($count,$offset+$size)]; } public static function session(string $scope,int $count,int $size,string $action=''): array { if(!is_array($_SESSION[Base::PAGINATION_PAGE]??null))$_SESSION[Base::PAGINATION_PAGE]=[]; $result=self::calculate($count,$size,(int)($_SESSION[Base::PAGINATION_PAGE][$scope]??1),$action); $_SESSION[Base::PAGINATION_PAGE][$scope]=$result['page'];return $result; } }