我在if语句中更改了一个全局变量,然后在else中访问,但它没有相同的值并且丢失了它的值:
global $reqUserID;
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if (isset($_POST['viewReq'])) {
$requests = new requests();
$results = $requests->getRequest($_POST['reqID']);
$result = mysql_fetch_array($results, MYSQL_ASSOC))
$GLOBALS['reqUserID'] = $result['USER_ID']; //CORRECT VALUE HERE
}
else if (isset($_POST['approveBtn'])) {
$var1 = $GLOBALS['reqUserID'];
$sql = "SELECT EMAIL FROM user_info WHERE USER_ID='$var1'";//SOME OTHER VALUE HERE
[...]
}
答案 0 :(得分:3)
如果在'if'子句中设置了值,则不会执行'else'子句,反之亦然。所以,你只能在语句的第二次迭代中找到'else'子句。然后,您需要了解变量的定义位置以及变量未定义的时间。
答案 1 :(得分:0)
在if-else结构的一次传递中,您可以输入if-construct或else结构。因此,您在if-part中所做的更改将在else-if结构的代码中不可见。
答案 2 :(得分:0)
页面被发布到自身,并且所涉及的全局变量未被发布以供使用,因此我在第一遍中创建了一个隐藏字段,其中填充了全局变量的值并发布了该值并使用_POST延迟使用它阵列。