2011-12-15 3 views
0

Я пытаюсь сделать каждый второй TD в моей таблице (HTML) другой цвет, и поэтому я использую эту переменную:PHP Неопределенная переменная с вар меняющегося цвета

$bgColor = ($bgColor == "#eee") ? "#fff" : "#eee"; 

И тогда я звоню это в моей таблице:

<td style='background:<?=$bgColor;?>'></td> 

Но я получаю сообщение об ошибке: Undefined переменной с $ BGColor = ($ BGColor и т.д.);

Это работает, но я получаю эту ошибку.

Как бы исправить это? Обычно я получаю эту ошибку, когда забыл if (isset()); но это не та ситуация.

Спасибо вперед :)

+0

Добавить '$ bgColor = ''; 'перед первым, если – Narek

+0

вы не получите ошибку, вы, скорее всего, получите уведомление о доступе к неопределенному значению. – Rufinus

+0

Вы заглянули в [zebra striping] (http://css-tricks.com/snippets/css/css3-zebra-striping-a-table/)? Это CSS3, поэтому он не будет работать со старыми браузерами, но это удобно. – ThatOtherPerson

ответ

3
$bgColor = (isset($bgColor) && $bgColor == "#eee") ? "#fff" : "#eee"; 
+0

Итак, я использую этот. Но @ также работает, но по какой-то причине я чувствую, что это «правильный» способ сделать это. Благодаря! :) – skolind

+0

Это потому, что @ просто временно подавляет ошибку, тогда как это не приведет к ошибке. Действительно, вы должны просто объявить переменную заранее, как '$ bgColor = null;' или что угодно. И действительно, вы должны просто делать это через таблицы стилей и классы на элементах таблицы. – Phoenix

+0

В таблицах стилей - это очень сложно, когда он зацикливается из базы данных :) – skolind

0

Вы должны установить $ BGColor к начальному значению #fff (или #eee) в противном случае она не определена для первой строки таблицы (если у вас есть цикл, в котором вы заселить <td> используя осциллирующие значения для bgColor - на самом деле ваш вопрос оставляет довольно много, чтобы спекулировать).

-1

Это ошибка, предупреждение или уведомление, которое вы получаете? Неопределенные переменные не являются большой проблемой на PHP, но если это уведомление, которое вы получаете, вы можете контролировать это, отключив «E_NOTICE» в отчете об ошибках.

+0

Это не говорит мне об ошибке, если я отключу E_NOTICE. Но я хочу, чтобы мой сайт был без этих небольших «ошибок» :-) – skolind

+0

Да, это правильный способ сделать это. Очень приятно :) – span

+0

Такие вещи входят в раздел «комментариев» не в ответах –

1

хорошо вы можете подавить ошибку, как это, поставив символ @ Infront переменного $ BGColor

$bgColor = (@$bgColor == "#eee") ? "#fff" : "#eee"; 
<td style='background:<?=$bgColor;?>'></td> 

или просто положить Исеть() функция, как это ..

$bgColor = (isset($bgColor) == "#eee") ? "#fff" : "#eee"; 
<td style='background:<?=$bgColor;?>'></td> 
+0

Этот тоже работает, спасибо :) Дал вам UP :) – skolind

Смежные вопросы