[php, тринарный оператор]Туплю

iakobi91

Можно такой код заменить на ? :

<table>
<tr>
<?foreach($content_menu as $key=>$item) {
if (!empty($item[1] {?>
<td><a href = <?=$item[1]?> class = subn><?=$item[0]?></a></td>
<?} else {?>
<td class = suba><?=$item[0]?></td>
<?}
}?>
</tr>
</table>

valodyr

Во-первых он тернарный.
Во-вторых, конечно, можно, только неясно, зачем.
В-третьих, для таких мест лучше использовать if...endif.

kruzer25

Можно.
<?
foreach($content_menu as $key=>$item) echo (@$item[1])?("<td><a href=".$item[1]." class=subn>".$item[0]."</a></td>"):("<td class=suba>".$item[0]."</td>");
?>

iakobi91

Не, хочу без эх)

kruzer25

Ну тогда ботай ман и не задавай тупые вопросы.

iakobi91

если ты вместо ответа огрызаешься, то скорее тебе нужно ботать ман.

kruzer25

Мне-то зачем?
А вот ты, похоже, совсем не понимешь смысла и значения тернарного оператора, раз задаёшь такие вопросы.
Зачем он тебе?

stm7884696

кстати я тоже не понимаю его смысла...
предполагаю, что его сделали:
а)для упрощения синтаксиса
б)для уменьшения размер кода
в)для обработки малых условий (ZB: $a=$b?$c:$d;)
г) для всего вместе

vall

как _ещё_ один оператор может упростит синтаксис? =)

uncle17

элементарно. Обычному человеку гораздо проще понять вложенный if (ИМХО)

kruzer25

как _ещё_ один оператор может упростит синтаксис?
Нам на матлоге говорили, что достаточно только одного бинарного оператора для логических значений, чтобы полностью описать все операции первого уровня (типа and, or, xor, not и всех различных комбинаций) - "стрелка кого-то там". Так как использование and, or, xor, not итп упрощает этот синтаксис, если вместо четырёх операторов можно использовать один (а xor в любом случае выкинуть, т.к. (a xor b) тождественно равно a or b) and (not (a and b и and или or - тоже, т.к. (a and b) всегда будет (not not a) or (not b а (a or b) - (not not a) and (not b - так что в любом случае из четырёх логических операторов два можно выкинуть

kruzer25

Скорее, наоборот - как удаление лишнего оператора может упростить синтаксис?
Чем меньше операторов/функций/итп (чем ниже уровень языка) - тем запутаннее будет код и тем сложнее будет в нём разобраться - посмотри на ассемблер, к примеру.

uncle17

(а xor в любом случае выкинуть, т.к. (a xor b) тождественно равно a or b) and (not (a and b и and или or - тоже, т.к. (a and b) всегда будет (not not a) or (not b а (a or b) - (not not a) and (not b
минут несколько пытался вникнуть, вспоминал школьный курс алгебры логики, в итоге нажал "BackSpace"

Barbie29

Во-первых он тернарный.
это как? всмысли бинарный это 0|1 а тринарный это когда 0|1|2
?

alfadred

Когда оператор работает с двумя операндами, он бинарный, с тремя - тернарный

gapon

Стрелка Пирса. А есть и еще один, но его названия я не помню. То ли штрих какой-то, то ли еще какая-то хрень.
А сабжевый оператор при в несложном случае позволит сократить длину кода и путаницы особой не внесет, значит он полезен.

alfadred

Штрих Шеффера.

stm7884696

Штрих Шеффера.
ну... и что это ?

nikita270601

use google

alfadred

A|B = not(AB)
с помощью этой ф-и можно выразить любую ф-ю алгебры логики.
Оставить комментарий
Имя или ник:
Комментарий: