|
|
|
| можете показать или расшифровать на примере эту структуру через ? : | |
|
|
|
|
|
|
|
для: himera7
(14.12.2007 в 14:46)
| |
if ($a > 1) $b = 5; else $b = 8;
$b = $a > 1 ? 5 : 8;
|
| |
|
|
|
|
|
|
|
для: sim5
(14.12.2007 в 14:48)
| |
<?
if ($a > 1) $b = 5; else $b = 8;
$b = ($a > 1) ? 5 : 8;
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(14.12.2007 в 16:54)
| | В данном случае скобки не обязательны. | |
|
|
|
|
|
|
|
для: sim5
(14.12.2007 в 16:57)
| | Согласен, но лучше приучиться писать так, ведь в условии может быть и не одно значение - дело принципа ;) | |
|
|
|
|
|
|
|
для: mihdan
(14.12.2007 в 17:00)
| | Пишите так, как считаете нужным, а я понимаю то, что пишу для себя, правила же скобок еще из школы... | |
|
|
|
|
|
|
|
для: sim5
(14.12.2007 в 17:06)
| | если в условии употребляются у меня две и более переменных то я пишу в скобках, проше читать | |
|
|
|
|
|
|
|
для: sim5
(14.12.2007 в 17:06)
| | Вот тут Вы ой как ошибаетесь.
Правила приоритета и ассоциативности для условной операции господа разработчики php умудрились заточить поперек тех же правил в с/с++ | |
|
|
|
|
|
|
|
для: Trianon
(14.12.2007 в 20:01)
| | Я всегда напишу так: (2 + 2) * 2, если мне нужно будет получить 8. У меня в условии $a > 1, и если бы это условие не работало вне скобок, я бы их прописал. В чем моя вина?-) | |
|
|
|
|
|
|
|
для: sim5
(14.12.2007 в 20:05)
| | >Я всегда напишу так: (2 + 2) * 2, если мне нужно будет получить 8.
Мы вроде про условную операцию говорим?
>В чем моя вина?-)
А Вы разработчик php, реализовавший анализатор выражений? | |
|
|
|
|
|
|
|
для: Trianon
(14.12.2007 в 21:52)
| | Это не важно, я к тому, что я привык не перегружать скобками то, что не неждается в них. Ниже, bronenos показал условную операцию, которая, на мой взгяд, более запутана (естественно для тех кто не знаком с нею), чем традиционная запись if... else. В тоже время запись $b = $a > 1 ? .... без скобок показалась ему нечетабельной.
Я не из числа разработчиков, слава Богу :) | |
|
|
|
|
|
|
|
для: sim5
(15.12.2007 в 06:45)
| | почему нечитабельна
просто мне со скобками чуть нагляднее | |
|
|
|
|
|
|
|
для: himera7
(14.12.2007 в 14:46)
| | интересно, а elseif можно использовать в этой кострукции?
или это только для простых условий | |
|
|
|
|
|
|
|
для: а-я
(14.12.2007 в 17:59)
| | Можно | |
|
|
|
|
|
|
|
для: mihdan
(14.12.2007 в 18:08)
| | как? | |
|
|
|
|
|
|
|
для: а-я
(14.12.2007 в 18:23)
| |
$max = ($a != $b) ?
(($a>$b) ? $a : $b)
: 0;
|
| |
|
|
|
|
|
|
|
для: SHAman
(14.12.2007 в 18:34)
| | объясните, что вообще это такое ? ? | |
|
|
|
|
|
|
|
для: SHAman
(14.12.2007 в 18:34)
| |
<?
$max = ($a != $b) ? ($a>$b) ? $a : $b : 0;
if ($a != $b)
if ($a > $b)
$max = $a;
else
$max = $b;
else
$max = 0;
?>
|
| |
|
|
|
|
|
|
|
для: bronenos
(14.12.2007 в 23:08)
| | А не могли бы вы мне "разжевать"?! | |
|
|
|
|
|
|
|
для: afdm
(15.12.2007 в 10:29)
| | Этот оператор имеет синтаксис condition ? iftrue : iffalse (условие ? если_истинно : если_ложно)
<?php
$result = true ? "Условие верное" : "Условие неверное"; //Всегда будет "Условие верное"
$result = false ? "Условие верное" : "Условие неверное"; //Всегда будет "Условие неверное"
?>
|
В записи же "$max = ($a != $b) ? ($a>$b) ? $a : $b : 0" просто используется оператор "... ? ... : ..." два раза. Если $a не равно $b, то следует еще один оператор, в противном случае возвращается 0.
Так вот этот второй оператор проверяет больше ли $a, чем $b. Если это так, то возвращается наибольшее значение, т.е. $a, если нет, то $b. | |
|
|
|
|
|
|
|
для: Unkind
(15.12.2007 в 10:41)
| | спасибо вам всем! всё понятно :))) | |
|
|
|