Почему мое условное эхо не соответствует - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть что-то вроде

просто фрагмент

$i = 1; while (...) {
    echo ($i % 5 == 1) ? 'class="first-col"' : ($i % 5 == 0) ? 'class="last-col"' : '';
    $i++;
} 

, но даже когда $i % 5 == 1, я получу class="last-col" эхо-моя логикада?

Это на самом деле исправление CSS для IE, поэтому мне не нужно использовать nth-child.Я пытаюсь настроить таргетинг на первый и последний столбцы моей сетки, которая содержит 5 столбцов / строку

Ответы [ 3 ]

4 голосов
/ 07 апреля 2011

Оператор ?: является левоассоциативным, т. Е. У вас есть

echo ( ($i % 5 == 1) ? 'class="first-col"' : ($i % 5 == 0) ) ? 'class="last-col"' : '';

См. http://php.net/manual/en/language.operators.comparison.php

Лучше не вкладывать троичные операторы.
Лучше использовать конструкции if / elseif / else, они более разборчивы.

2 голосов
/ 07 апреля 2011

Добавление скобок помогает:

echo (($i % 5 == 1) ? 'class="first-col"' : (($i % 5 == 0) ? 'class="last-col"' : ''));

1 голос
/ 07 апреля 2011

Для начала вы используете вложенные троичные операции. Я бы, по крайней мере, использовал скобки вокруг отдельных условий, чтобы было понятно, что нужно делать в первую очередь.

...