Q:

Почему не выполняется условие

Доброго времени суток! Столкнулся с какой-то странной ошибкой. Есть следующий фрагмент кода:
$color = false;

foreach($data1 as $value)
{        
    if ($color = false) 
    {
      echo "<tr>";
      $color = true;
    }
    else        
    {
      echo "<tr class='even'>";
      $color = false;
    }
    ...
}

Тут все элементарно: переменной color присваивается значение false, после чего начинается цикл перебора массива. В зависимости от того что присвоено значению color должно выдавать в echo тег tr стандартный или tr с подсветкой. Однако на деле в условие $color = false вообще почему-то не входит. Хотя изначально переменная равна лжи. В чем причина может быть? Пустячная проблема, а решить не могу ее. (Пробовал через счетчик делать с приращением, такая же ерунда, только одно условие выполняется всегда, хотя число меняется).

A:

if ($color = false)
Обратите внимание! что делает эта строка?
вы думаете что это сравнение? $color = false
Сравнение выполняется с двумя == или с тремя === (по типу).
Правельно будет: if ($color == false)

