Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: условие if но только через : ? как

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: afdm   (15.12.2007 в 12:23)   письмо автору
 
   для: Unkind   (15.12.2007 в 10:41)
 

спасибо вам всем! всё понятно :)))

   
 
 автор: bronenos   (15.12.2007 в 11:42)   письмо автору
 
   для: sim5   (15.12.2007 в 06:45)
 

почему нечитабельна
просто мне со скобками чуть нагляднее

   
 
 автор: Unkind   (15.12.2007 в 10:41)   письмо автору
 
   для: 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.

   
 
 автор: afdm   (15.12.2007 в 10:29)   письмо автору
 
   для: bronenos   (14.12.2007 в 23:08)
 

А не могли бы вы мне "разжевать"?!

   
 
 автор: sim5   (15.12.2007 в 06:45)   письмо автору
 
   для: Trianon   (14.12.2007 в 21:52)
 

Это не важно, я к тому, что я привык не перегружать скобками то, что не неждается в них. Ниже, bronenos показал условную операцию, которая, на мой взгяд, более запутана (естественно для тех кто не знаком с нею), чем традиционная запись if... else. В тоже время запись $b = $a > 1 ? .... без скобок показалась ему нечетабельной.
Я не из числа разработчиков, слава Богу :)

   
 
 автор: bronenos   (14.12.2007 в 23:08)   письмо автору
 
   для: 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;
?>

   
 
 автор: afdm   (14.12.2007 в 22:59)   письмо автору
 
   для: SHAman   (14.12.2007 в 18:34)
 

объясните, что вообще это такое ? ?

   
 
 автор: Trianon   (14.12.2007 в 21:52)   письмо автору
 
   для: sim5   (14.12.2007 в 20:05)
 

>Я всегда напишу так: (2 + 2) * 2, если мне нужно будет получить 8.

Мы вроде про условную операцию говорим?

>В чем моя вина?-)

А Вы разработчик php, реализовавший анализатор выражений?

   
 
 автор: sim5   (14.12.2007 в 20:05)   письмо автору
 
   для: Trianon   (14.12.2007 в 20:01)
 

Я всегда напишу так: (2 + 2) * 2, если мне нужно будет получить 8. У меня в условии $a > 1, и если бы это условие не работало вне скобок, я бы их прописал. В чем моя вина?-)

   
 
 автор: Trianon   (14.12.2007 в 20:01)   письмо автору
 
   для: sim5   (14.12.2007 в 17:06)
 

Вот тут Вы ой как ошибаетесь.
Правила приоритета и ассоциативности для условной операции господа разработчики php умудрились заточить поперек тех же правил в с/с++

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования