有人可以解释为什么在调用标题($ URL)时,此代码中的$ URL变量始终设置为“Location:unknown.php”?如果我在第一行注释掉声明/初始化代码工作,但我得到一个变量未声明的警告(如果我在if块之前声明$ URL而没有初始化它,我也会收到这些警告)。
$URL = 'Location: unknown.php';
if ($spring){
if (($leaves)&&(!$stem)&&(!$root)&&(!$head)&&(!$whole)){$URL = 'Location: snow-mold.php';}
} else if ($other) {
if ((!$leaves)&&(!$stem)&&(!$root)&&($head)&&(!$whole)){$URL = 'Location: o01.php';}
if (($whole) || ($root) ){$URL = 'Location: o02.php';}
if (($leaves)&&($stem)&&(!$root)&&($head)&&(!$whole)){$URL = 'Location: o03.php';}
if (($leaves)&&($stem)&&(!$root)&&(!$head)&&(!$whole)){$URL = 'Location: o04.php';}
if ((!$leaves)&&($stem)&&(!$root)&&($head)&&(!$whole)){$URL = 'Location: o03.php';}
if (($leaves)&&(!$stem)&&(!$root)&&($head)&&(!$whole)){$URL = 'Location: o05.php';}
if ((!$leaves)&&($stem)&&(!$root)&&(!$head)&&(!$whole)){$URL = 'Location: o06.php';}
if (($leaves)&&(!$stem)&&(!$root)&&(!$head)&&(!$whole)){$URL = 'Location: o07.php';}
}
header($URL);
好的,我已经简化了代码以突出问题......
$spring = (isset($_POST['season']) && strcmp($_POST['season'],'spring') == 0);
$URL = 'Location: unknown.php';
if ($spring){
$URL = 'Location: snow-mold.php';
}
header($URL);
始终重定向到unknown.php。如果我将$URL = 'Location: unknown.php'更改为$URL;,当且仅当选择了spring时,代码会重定向到snow-mold.php,但我收到$ URL未定义的警告。
本文探讨了一个PHP代码中,$URL变量为何在调用时始终指向'unknown.php'的问题。作者揭示了在条件判断中的变量赋值逻辑,并提到了变量声明与初始化的重要性。通过简化示例,解释了如何修正以实现正确季节相关的URL重定向。
207

被折叠的 条评论
为什么被折叠?



