1

我在 PHP 5.4.10 下运行的页面中有以下代码段(注意 === 比较)。

$list_all_pages = False;
$reqs_per_page = 50;
$start_page = 0;

if (isset($_GET["p"])) {
    echo("Debug: " . $_GET["p"] . "\n");
    if ($_GET["p"] === "all") {
        $list_all_pages = True;
    } else {
        $start_page = intval($_GET["p"]);
        if ($start_page < 1)
            $start_page = 0;
    }
}

参数“p”是要显示的结果页数(从零开始)或“all”显示所有页。由于我不明白的原因,PHP 自动将我的参数转换为整数,因此我永远无法显示我希望的所有页面。

例如,使用“ mypage.php?p=all”调用页面会导致调试回显打印“调试:0”

发生了什么?我认为这种自动转换有点危险......以前有人遇到过这个问题吗?

4

2 回答 2

3

$_GET 变量p(即 ?p=)在 WordPress 中保留,作为提供帖子 ID 的默认方式。虽然大多数人喜欢转换他们的 URL,但默认值为 www.domain.com/?p=123。

Wordpress 专门寻找这个参数(它也被用作wp_shortlink),如果它不是数字的,它会自动将值设置为 0。

于 2012-12-26T04:48:53.840 回答
0

这已经足够了,无需输入强制转换

if ($_GET["p"] == "all") {
        $list_all_pages = True;
    } else {
        $start_page = (int)$_GET["p"];
        if ($start_page < 1)
            $start_page = 0;
    }
于 2012-12-26T04:48:36.757 回答