使用堆栈记住下一页和上一页

时间:2016-04-22 11:39:59

标签: php stack

如果您有一系列页面名称,如下所示:

    $array = ["home.php", "about.php", "contact.php"];

用户将登陆“home.php”,并有一个按钮进入下一页,即“about.php”。然后,about页面将有一个前一个按钮转到“home.php”,另一个按钮将转到“contact.php”。

我试图通过推送和弹出值来使用Stack,但我没有运气。我很感激,如果有人建议替代方案,但我想使用堆栈。

2 个答案:

答案 0 :(得分:0)

只需检查当前页面的数组索引并相应地构建上一个/下一个链接:

    $array = ["home.php", "about.php", "contact.php"];
    $cp = basename($_SERVER['PHP_SELF']);
    $ci = array_search($cp, $array);
    if($ci > 0){
        echo '<a href="'.$array[$ci-1].'">Prev page</a>';
    }
    if($ci < count($array)-1){
        echo '<a href="'.$array[$ci+1].'">Next page</a>';
    }

答案 1 :(得分:0)

您可以使用array_search查找数组中当前页面的位置。然后检查它是否有任何邻居,如:

$array = ["home.php", "about.php", "contact.php"];

// Get the location of the current page in $array
$currentPageKey = array_search(basename($_SERVER['SCRIPT_NAME']), $array);

// See if there is a key prior to this. If so, get it's value
$previousPage = array_key_exists($currentPageKey - 1, $array)
    ? $array[$currentPageKey - 1]
    : null;

// See if there is a key after this. If so, get it's value
$nextPage = array_key_exists($currentPageKey + 1, $array)
    ? $array[$currentPageKey + 1]
    : null;

然后你可以做类似

的事情
if (!is_null($previousPage)) {
    echo '<a href="' . $previousPage . '">Previous</a>';
}

if (!is_null($nextPage)) { 
    echo '<a href="' . $nextPage . '">Next</a>';
}