PHP SQL
PHP SQL .ru
  Главная  Уроки  PHP  MySQL  jQuery  RegEx  CSS  Книги  Форум  
 Функции


  На главную

  Назад  Вперед

  Печать

То же через классы

Изучаем сценарий подробно

Возможно, вам интересно, что вашу функцию можно легко преобразовать в объектно-ориентированный класс для форматирования таблицы. Вместо объявления функции вам нужно сделать класс с приватной переменной для слежения за состоянием таблицы. Конструктор и деструктор открывают и закрывают теги таблицы (соответственно). Наш класс будет выглядеть так:

class AltTable {
function _construct ()   {
$this->state = 0; print "<table>";
}
function _destruct()   {
print "</table>";
}
function print_row($row)   { if ($this->state & 1)   {
$row_color = "row2"; } else {
$row_color = "rowl";
}
print "<tr class=\"$row_color\">"; foreach  ($row as $value)   { print "<td>$value</td>";
}
print "</tr>"; $this->state++;
}
}
Использовать класс нужно так (мы подразумеваем, что SQL-запрос будет таким же, как и в предыдущем примере):
$mytable = new AltTable;
while($row = mysql_fetch_row($result))   { /* Выводим результаты.  */ $mytable->print_row($row);
}
unset($mytable);
На первый взгляд, использование класса кажется даже более простым - вам не нужно беспокоиться о счетчике, метод print_row () будет обрабатывать любое количество строк, а также вам не нужно выводить HTML-код для открытия и закрытия таблицы. Это, безусловно, удобно, если все ваши HTML-таблицы одинаковые. Все это удобство достигается ценой снижения гибкости и эффективности. Конечно, вы можете добавить новые методы, например для добавления заголовков таблицы, но сначала спросите себя, а стоит ли оно этого?

 
Предыдущая   На главную   Следующая          

Ваш комментарий:

'

Реклама на сайте | Обмен ссылками | Ссылки | Контакты
Добавить статью | Добавить исходник
2010-2014 © phpsql.ru