代码未按正确顺序执行?

时间:2016-06-23 22:00:10

标签: php

代码旨在在未找到结果集匹配时发送警告。但是由于某种原因,我发现我的if语句if($send_warning = true)没有在正确的时间执行。

根据代码,它应该在while循环结束时执行,它应该使用$send_warning变量来确定整个结果集是否包含匹配并相应地发送警告。

考虑以下结果集

1. 8.22.33.44
2. 9.88.44.33
3. 11.22.55.77

$_SERVER["REMOTE_ADDR"]评估为11.22.55.77

因此循环显然在第一个索引处开始,因此它在第一次迭代时将$send_warning设置为true - 但是循环尚未完成。此时,if语句已被触发。这是错误的 - 因为它应该等到整个循环结束。

我在这里失踪了什么?

$send_warning = false;

if ($result->num_rows > 0) {
        // output data of each row
        while($ip = $result->fetch_assoc()) {
                var_dump($ip['ip_address']);
                echo "<br>";
                var_dump($_SERVER["REMOTE_ADDR"]);
                if($ip['ip_address'] == $_SERVER["REMOTE_ADDR"]) {
                        $send_warning = false;
                        break;
                        var_dump("not sending");
                } else {
                        var_dump("sending");
                        $send_warning = true;
                }
        }
        if($send_warning = true) {
                send($send);
        }

} else {
        //do nothing
}

0 个答案:

没有答案