在if条件下更改全局变量值,然后在else中访问值

时间:2011-06-30 20:20:56

标签: php mysql variables scope global-variables

我在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
            [...]
        }

3 个答案:

答案 0 :(得分:3)

如果在'if'子句中设置了值,则不会执行'else'子句,反之亦然。所以,你只能在语句的第二次迭代中找到'else'子句。然后,您需要了解变量的定义位置以及变量未定义的时间。

答案 1 :(得分:0)

在if-else结构的一次传递中,您可以输入if-construct或else结构。因此,您在if-part中所做的更改将在else-if结构的代码中不可见。

答案 2 :(得分:0)

页面被发布到自身,并且所涉及的全局变量未被发布以供使用,因此我在第一遍中创建了一个隐藏字段,其中填充了全局变量的值并发布了该值并使用_POST延迟使用它阵列。