我正在将分页集成到wordpress块,应该发生的是每当我点击“旧帖子”按钮时,帖子偏移量会在另一个php文件中增加(块文件和增量文件是单独的文件)。
每当我点击较旧的帖子时,会发生一些不应该发生的魔法:
问题在于其中一个if语句,会发生什么是IF语句的计算结果为false,但是我在代码中标记的那一行仍然被执行(echo不执行但是$_SESSION["inf"] = 0;
一样)。
这是代码。
if(isset($_POST["paginate_btn"])){
if(isset($_SESSION["inf"])){
echo "PREVIOUS:".(string)($_SESSION["inf"]);
$_SESSION["inf"] = $_SESSION["inf"] + 5;
echo "<br/> incremented by 5, RESULT:".(string)($_SESSION["inf"]);
}
else{
echo "<br/> isset session inf failed, set to 5";
$_SESSION["inf"] = 5;
}
}
else if(isset($a) and ($a != $url)){
echo "<br/>dif page";
if(isset($_SESSION["inf"])){
echo "<br/> unset";
$_SESSION["inf"] = 0; <----- THIS LINE HERE!
}
else{
echo "<br/>session inf not set and button not pressed";
}
}
else{
echo "<br/> button not pressed, a is not set and is same page";
$_SESSION["inf"] = 0;
}
我已经乱搞了几个小时,我不明白这是怎么回事。
var_dump((isset($a) and ($a != $url)));
评估false
,但仍然只有那一行代码被执行,回声没有,甚至在它之前的差异页面回声....
有趣的是,如果我注释掉一行,这不再发生,我甚至尝试将它设置为不同的变量,所以它肯定会以某种方式单独运行。
if语句之后的var_dump代码。
echo "<br/>--1---<br/>";
var_dump((isset($a) and ($a != $url)));
echo "<br/>--2---<br/>";
var_dump((isset($_SESSION["inf"])));
echo "<br/>---<br/>";
echo $_SESSION["inf"];
echo "<br/>---<br/><br/>";
答案 0 :(得分:0)
代码的另一部分将$_SESSION["inf"]
设置为0
。
如果您没有看到echo
,则不会执行。