нужно объяснение возврата ($ a> $ b)?-1: 1 в php - PullRequest
1 голос
/ 06 августа 2011

Немного глупый вопрос для более продвинутых программистов, но в моем стремлении выучить php я наткнулся на операторы return, которые включают? символ со значениями 0, -1 и 1, например:

return ($a > $b) ? -1 : 1;

или

[$index ? 0 : 1];

Я пытаюсь понять логику того, что делает это утверждение и почему оно используется, любая помощь будет иметь большое значение, спасибо

Ответы [ 4 ]

2 голосов
/ 06 августа 2011

Разве это не похоже на оператор if в С, но в одной строке?Поэтому я подумал, что это эквивалент PHP:

if ($a > $b) {
return -1;
} else {
return 1;
}

В то время как короткая версия будет выглядеть так:

return (($a > $b) ? -1 : 1);

Итак, у вас есть что-то вроде этого:

(if true) ? then : else;

Проверьте это для более подробной информации.

2 голосов
/ 06 августа 2011

? - троичный оператор.Если логическое выражение ($a > $b) истинно, то возвращается -1, в противном случае возвращается 1.Это просто короткая комбинация if else.

Подводя итог, boolean expression ? x : y равно:

if (boolean expression)
   evaluates to x
else
   evaluates to y
2 голосов
/ 06 августа 2011

Это то же самое, что и

if ($a > $b) 
      return -1; 
else

      return 1;

(это сокращение)

Поиск слова "троичный" на этой странице

2 голосов
/ 06 августа 2011
  1. return ($a > $b) ? -1 : 1;

Если $a больше $b return -1, иначе вернуть 1.

Это троичный оператор (сокращенное выражение if / else)

...