Изменение значения глобальной переменной в условии if, а затем доступ к значению в else - PullRequest
1 голос
/ 01 июля 2011

У меня есть глобальная переменная, изменяемая в операторе 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 ]

3 голосов
/ 01 июля 2011

Если вы установите значение в предложении 'if', тогда предложение 'else' не будет выполнено, и наоборот.Таким образом, вы можете получить доступ к предложению 'else' только на второй итерации оператора.Затем вам нужно понять, где определены переменные, и когда они становятся неопределенными.

0 голосов
/ 01 июля 2011
Страница

была опубликована сама по себе, и связанная глобальная переменная не была опубликована для использования, поэтому я сделал скрытое поле, заполненное значением глобальной переменной при первом проходе, и опубликовал значение и использовал его поздно, используя _POST массив.

0 голосов
/ 01 июля 2011

За один проход над конструкцией if-else вы можете ввести либо конструкцию if, либо конструкцию else. Таким образом, изменения, внесенные в if-part, не будут видны в коде конструкции else-if.

...