PHP if statement and ob_flush


PHP if statement and ob_flush

如果它们相同,则不执行任何操作,如果它们不同,则执行底部并使它们相同。整个脚本处于循环中,但循环只执行其他操作。就像它没有检查条件一样。我做错了什么?

for ($int = 0; $int < 10, $int+1){
        $array = $getarray();
    foreach ($array as $array){
        $var1 = $array->id;
        $var2 = null;
        if ($var1 == $var2){
            echo ('skip');
        }else{
            echo '<br>'.$var1.'<br>';
            ob_flush();
            $var2 = $var1;
        }
}
}

最初 var2 为 null,var1 获取字符串值。所以它执行 else 并且 var2 获取 var1 字符串。下一个循环 如果 var1 没有更改,它将等于 var2。所以它什么都不做,跳过

我不

明白这些循环的逻辑,但这是你应该这样做的:

for ($int = 0; $int < 10, $int++) {
    /*
     * I suppose getarray() is a function.
     * If you have a variable $getarray containing the name of another function
     * then you should change getarray() to $getarray()
     */
    foreach (getarray() as $array) {
        if (is_null($array->id)) {
            echo ('skip');
        } else {
            echo "<br />{$array->id}<br />";
            ob_flush();
        }
    }
}

你的代码不能正常工作,因为你的循环将执行多少次,你的$var 2将变为空,所以在$var 1和$var 2值相同的点上,你不会到达。因此,请尝试以下代码。

for ($int = 0; $int = 10; $int+1){
    $array = $getarray();
    $var2 = null;
    foreach ($array as $array){
        $var1 = $array->id;
        if ($var1 == var2){
            echo ('skip');
        }else{
            echo '<br>'.$var1.'<br>';
            ob_flush();
            $var2 = $var1;
        }
    }
}