使用函数优化的重复代码


Duplicate code optimized using a function

我有一堆用于分页的代码。我在一个很长的页面的顶部使用这个代码字符串,并且在页面底部也有完全相同的代码。复制代码似乎效率不高。我希望通过以某种方式在页面顶部调用一次代码来优化我的页面,然后有一些东西只是将相同的代码放在页面底部......

我认为这可以通过函数来完成,但我的 php 不是很好,我所做的几次尝试都失败了。函数中有很多变量($total_num_results,$perpage,$p,$pages(,我认为这就是我迷路的地方......有人可以告诉我如何使用函数来做到这一点吗?

或者,我认为我可以创建一个包含(并且只调用该文件两次(,但我想避免链接到其他文件......

<center>
    Page: &nbsp; <span class="pagination"><?php
    // PREVIOUS link
    if($total_num_results > $perpage && $p!='1')
    {
        $p1 = $p-1;
        echo "<a href='"mypage/index.php?p=".$p1."'">previous</a>"; 
    } else {
        echo '<span class="paginationon">previous</span>';
    }
    // Pages
    for ($i=0; $i < $pages; $i++)
        {
            $j = $i+1;
            if ($j == $p)
            { 
                echo '<span class="paginationon">'.$j.'</span>'; 
            } else { 
                echo '<a href="mypage/index.php?p='.$j.'">'.$j.'</a>'; 
            }
        }
    // NEXT link
    if($total_num_results > $perpage && $p!=$pages)
        {
            $p2 = $p+1;
            echo '<a href="mypage/index.php?p='.$p2.'">next</a>'; 
        } else {
            echo '<span class="paginationon">next</span>';
        }
    ?></span>
    </center>
          <?php
      function pagination(){
          global $total_num_results, $perpage, $p, $pages; 
          if($total_num_results > $perpage && $p!='1')
            {
                $p1 = $p-1;
                echo "<a href='"mypage/index.php?p=".$p1."'">previous</a>"; 
            } else {
                echo '<span class="paginationon">previous</span>';
            }
            // Pages
            for ($i=0; $i < $pages; $i++)
                {
                    $j = $i+1;
                    if ($j == $p)
                    { 
                        echo '<span class="paginationon">'.$j.'</span>'; 
                    } else { 
                        echo '<a href="mypage/index.php?p='.$j.'">'.$j.'</a>'; 
                    }
                }
            // NEXT link
            if($total_num_results > $perpage && $p!=$pages)
                {
                    $p2 = $p+1;
                    echo '<a href="mypage/index.php?p='.$p2.'">next</a>'; 
                } else {
                    echo '<span class="paginationon">next</span>';
                }
        }
?>

然后在 HTML 中

<center>
    Page: &nbsp; <span class="pagination"><?php pagination(); ?></span>
</center>