PHP if语句和ob_flush

时间:2016-01-22 08:51:38

标签: php

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

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字符串。 Next loop如果var1没有改变,它将等于var2。所以它什么也没做,跳过

2 个答案:

答案 0 :(得分:2)

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

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();
        }
    }
}

答案 1 :(得分:-1)

你的代码无法正常工作,因为循环执行的次数,$ var2将变为null,因此在$ var1&amp;和$ var1&amp; $ var2值相同。 所以请尝试以下代码。

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;
        }
    }
}