使用函数优化的重复代码

时间:2014-12-20 03:50:20

标签: php function pagination

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

我认为这可以通过函数完成,但是我的php不是很好,而且我做过的几次尝试都导致了失败。函数中有很多变量($ total_num_results,$ perpage,$ p,$ pages),我认为这是我迷路的地方......有人可以告诉我如何使用函数执行此操作吗?

或者,我虽然可以创建一个include(并且只调用两次文件),但我想避免链接到其他文件......

<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>

1 个答案:

答案 0 :(得分:0)

          <?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>