5.04.2014 / 18:06 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Helltar, посмотри вывод и поймёшь в чём вопрос.
__________________
let live |
5.04.2014 / 18:40 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| echo 'ololo: ' . 1 < 2 ? 3 : 4;
3. Норм. function checkRange($min, $value, $max) {
return ($value < $min) ? $min : ($value > $max) ? $max : $value;
}
echo checkRange(0, 6, 10) . '<br/>';
6. Норм. function checkRange($min, $value, $max)
{
if ($value < $min)
return $min;
elseif ($value > $max)
return $max;
else
return $value;
}
echo checkRange(0, -6, 10);
0. Норм |
5.04.2014 / 18:44 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Helltar, а чего ж в последнем примере проверку развернул?) Неужто-ль тернарный оператор 10 выдавал? Попробуй вместо 1,2,3,4 в первом примере переменные использовать. function checkRange($min, $value, $max) {
echo 'ololo: ' . $value < $min ? $min : $value;
return ($value < $min) ? $min : ($value > $max) ? $max : $value;
}
__________________
let live Изменено aNNiMON (5.04 / 18:47) (всего 3 раза) |
5.04.2014 / 18:49 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| aNNiMON, -6. Пример #3 Неочевидное поведение тернарного оператора <?php
// на первый взгляд, следующий код должен вывести 'true'
echo (true?'true':false?'t':'f');
// однако, он выводит 't'
// это происходит потому, что тернарные выражения вычисляются слева направо
// это намного более очевидная версия вышеприведенного кода
echo ((true ? 'true' : false) ? 't' : 'f');
// здесь вы можете видеть, что первое выражение вычисляется в 'true', которое
// в свою очередь вычисляется в (bool)true, таким образом возвращая истинную ветвь
// второго тернарного выражения.
?>
Изменено Helltar (5.04 / 18:50) (всего 1 раз) |
5.04.2014 / 18:53 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Helltar, ну вот теперь я спокоен. К слову: echo 'ololo: ' . $value < $min ? $min : $value; у меня вообще не выводит строку, тупо её пропускает)
__________________
let live Изменено aNNiMON (5.04 / 18:53) (всего 1 раз) |
5.04.2014 / 19:01 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| function checkRange($min, $value, $max) {
echo 'ololo: ' . $value < $min ? $min : $value;
}
checkRange(1, 2, 3);
1. Не норм. function checkRange($min, $value, $max) {
echo 'ololo: ' . ($value < $min ? $min : $value);
}
checkRange(1, 2, 3);
2. Норм. |
6.04.2014 / 02:50 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| aNNiMON, ай ай. Приоритеты операций не знаешь =/
|
6.04.2014 / 05:14 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Ксакеп, такой же код не java вполне работает.
__________________
let live |
6.04.2014 / 13:16 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| aNNiMON, я в какой-то то-ли книженции, то-ли статье читал что скобки нужно лепить всегда. Мол это хороший тон и не нужно будет другим людям разбираться в приоритете. Оно так и есть, сейчас в редакторах вторая скобка подсвечивается автоматически. Немного не в тему, но для меня когда-то было открытием что echo '---' . (3+4) .'----';
echo '---' . 3+4 .'----';
это совсем не одно и то же. С тех пор леплю скобки всегда, где нужно, а может, и не нужно. А то потом баг фиг отловишь. Изменено web_demon (6.04 / 13:19) (всего 4 раза) |
6.04.2014 / 15:14 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| web_demon, а что выведет?
__________________
знает толк |