2013-06-04 2 views
-4
$odd= true; 
echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">'; 
    $odd = !$odd; 

Может ли кто-нибудь объяснить этот код?Can AnyOne Объясните этот код me Please

+2

что здесь вводит в заблуждение? –

+0

См. Также: http://stackoverflow.com/questions/1080247/what-is-the-php-operator-called-and-what-does-it-do –

+0

Вы попали в Google? –

ответ

3

Это означает, что

if ($odd == true){ 
    echo '<tr class="odd_row">'; 
}else{ 
    echo '<tr class="even_row">'; 
} 

и называется ternary operator

Тогда $odd = !$odd; значение этой переменной "щелкнул". Я предполагаю, что это сделано, чтобы сделать следующую строку «четной».

+1

как насчет '$ odd =! $ Odd;'? –

+0

это эквивалентно: Asenar

+0

@Akam, хорошо, добавлено объяснение – k102

0

Это устанавливает переменную $odd в логическое значение true

$odd= true; 

Это использует Что называется оператором terniary распечатать строку. Если $odd верно, он будет печатать первый бит, если не второй. Как вы установили $odd к истинному непосредственно перед, он всегда будет печатать первые битый

echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">'; 

Это устанавливает $odd в ! (не) $odd так переворачивает логическое значение ЛОЖЬ $ нечетных = $ нечетными!;

Извините за буквального объяснения, но я хотел быть тщательно

10

Выражение [a] ? [b] : [c] называется ternary operator. Это то же самое, как эта функция:

function ternary($a, $b, $c) { 
    if ($a) 
    return $b; 
    else 
    return $c; 
} 

за исключением того, что аргументы в тройной оператор ленивы оценена (т.е. только один из [b] и [c] фактически выполняется).

$odd = !$odd переключает значение $odd между true и false.

Код, вероятно, используется внутри цикла, который печатает строки таблицы, которые чередуются с классами odd_row и even_row, которые затем могут быть разными способами с использованием CSS.

+0

+1 для объяснения "переключает значение $ odd между true и false" –

+0

Это не совсем то же самое, что и ваша функция, рассмотрите 'echo $ a? 1: (print «hello»); 'vs' ternary ($ a, 1, (print "hello")); ' –

+0

@Jack Спасибо, исправил его. – Oswald

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