Исходный код
if ( 0 == 0 ) 
{ 
  $x += 1; 
  $yellow = ""; 
  if ( $myhighlight_unit[$i_high] == $row[$i]['ID'] ) 
  { 
    //echo $myhighlight_unit[$i_high]." == ".$i_high."<br />";
    $yellow = "background-color: #ffcc33;"; 
  } 
  if ( $row[$i]['approved'] > 0 && $_SESSION['userid'] > 3 ) 
  { 
    $yellow = "background-color: #ff0000;"; 
  } 
  if ( $i_tr == 0 ) 
  { 
    echo"<tr>"; 
  }
}Как можно улучшить исходный код
При беглом взгляде на код легко видеть, что его основную часть занимает вычисление цвета фона. Это достаточно осмысленная операция, чтобы её перенести в отдельную функцию:
function cellStyles($cell, $unit_id) {
    if ($cell['approved'] > 0 && $_SESSION['userid'] > 3) {
        return"background-color: #ff0000;";
    }
    if ($cell['ID'] === $unit_id) {
        return"background-color: #ffcc33;";
    }
    return '';
}Вызов функции будет выглядеть так:
$yellow = cellStyles($row[$i], $myhighlight_unit[$i_high);В идеале подобные вопросы решаются через CSS-классы: функция должна возвращать имена классов для клетки таблицы, а в CSS должны быть прописаны стили для этих классов.
Имена переменных следует привести в соответствие с их смыслом:
- $yellow→- $cell_stylesили- $cell_classes
- $x→ вероятно,- $cell_number
- $i_tr— тоже очень похоже на- $cell_number, надо разобраться, что из них для чего
Избавляться от условия if ( 0 == 0 ) скорее всего нет смысла, тут явное указание на ещё не устоявшуюся часть алгоритма, которая то и дело меняется.
Теория
- Принцип единственного знания
- Рефакторинг «извлечение метода»