【问题标题】:Using $_GET for pagination, adding one to it使用 $_GET 进行分页,加一
【发布时间】:2014-02-26 11:13:59
【问题描述】:

所以我正在做的是在一个 php 文件中创建一个分页。

我为此使用 $_GET:

if ( $_GET["page"] === "3" ) echo 'href="#"';
else echo 'href=?page=' . $_GET["page"] + 1 . '"';

此代码用于制作侧箭头的工作

当我在 ?page=3 上时,脚本会像预期的那样回显 href"#",但是当我在每隔一个页面上时,脚本会回显

1"

我已经检查了几次脚本,没有发现任何错误。

我认为我只是在做一些愚蠢的事情,但我真的不知道是什么。

希望你能帮助我!

【问题讨论】:

  • if ($_GET['page']=="3") { echo 'href="#"'; } else { echo 'href=?page='.$_GET['page'] + 1.'"'; }
  • 括号不是这里的问题:)

标签: php pagination


【解决方案1】:

您的 else 引号有误,您需要在 +1 周围加上括号:

else echo 'href=?page=' . $_GET["page"] + 1 . '"';
// should be
else echo 'href="?page='.( $_GET["page"] + 1 ).'"';
                ^

【讨论】:

  • 糟糕,当我试图修复它时输入错误。但它仍然输出 1#
  • 非常感谢! (Ayame__ 也是!)这行得通!不过,我的方法以前有效,这很奇怪。但是没问题!谢谢你让我开心!
  • 我认为这是答案,哈哈。但是 Ayame__ 的作品也是如此
  • 我已将 Ayame__ 的答案设置为解决方案,因为它简要概述了我做错了什么,并且在我看来,对于其他有此问题的人来说更好。
【解决方案2】:

你在一个不带括号的 concat 中添加了一个字符串和一个带“+”的整数

改成

if ( $_GET["page"] === "3" ) echo 'href="#"'; else echo 'href="?page=' . ($_GET["page"]+ 1) . '"';

【讨论】:

  • 感谢您的帮助!
【解决方案3】:

没有使用“===”,如果 $_GET["page"] 是 int 你的代码返回 false。你忘记了一句话。

试试这个:

echo 'href="'.( ($_GET["page"] == 3) ? '#' : '?page='.($_GET["page"]+1) ).'"';

阅读:How do the PHP equality (== double equals) and identity (=== triple equals) comparison operators differ?

【讨论】:

  • 其实他的代码没有错误。 $_GET 变量都是字符串,在他的代码中他与字符串 3 ("3") 进行比较。类型检查在这里没有附加价值,但没有错
猜你喜欢
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 2017-08-16
  • 2016-11-20
  • 2013-04-14
  • 2015-05-15
相关资源
最近更新 更多