好的,所以我有一个功能可以根据页面ID生成上一个/下一个链接,它之前有效,但现在却没有。 switch语句中使用的所有必要变量都是在调用它们的函数之前定义的。这是生成链接的功能:
function generateNavbar(){
//Name and number
$name = preg_replace("#[\d]#", "", strval($_GET["id"]));
$num = preg_replace("#[^\d]#", "", strval($_GET["id"]));
$maxNum = getMaxPage($name);
//Print the nav links
echo "<br><br><center><b>";
if(intval($num) > 1) echo "<a href=\"?id=" . $name . (intval($num) - 1) . "\"><< PREV</a>";
if(intval($num) > 1 && intval($num) < intval($maxNum)) echo " | ";
if(intval($num) < intval($maxNum)) echo "<a href=\"?id=" . $name . (intval($num) + 1) . "\">NEXT >></a>";
echo "</b></center>";
};
以下是获得最大值的功能:
function getMaxPage($name){
//Get max value
switch($name){
case "codeSquirrel":
return $numSquirrel;
break;
case "strPhobia":
return $numPhobia;
break;
case "strDouble":
return $numDouble;
break;
default:
return 0;
break;
};
};
getMaxPage()
的代码最初位于generateNavbar
内,但当我需要在使用页码的其他函数中使用相同的代码时,它就停止了工作。由于某些原因,函数不希望向其发送$name
,因此它始终返回0. getMaxPage()
在所有调用它的函数之前定义。我做错了什么?
答案 0 :(得分:1)
问题可能不在于$name
没有传递给getMaxPage
,而是在numSquirrel
中未定义getMaxPage
等。
如果这些变量是在generateNavBar
中定义的,那么它解释了为什么代码在重构之前工作,使getMaxPage
成为一个单独的函数。