Что?: в PHP 5.3? [дубликат]

Возможный Дубликат: Каковы операторы PHP “?” и “:” названный и что они делают?

Из http://twitto.org/


Twitto использует несколько новых функций, доступных с PHP 5.3:

  1. Постоянный DIR
  2. ?: оператор
  3. Анонимные функции

  1. Что номер 2 делает с?: в PHP 5.3?

  2. Кроме того, что они подразумевают под анонимными функциями? Не был то, что что-то, что существовало некоторое время?

83
задан Community 23 May 2017 в 12:34
поделиться

3 ответа

?: - это форма условного оператора, которая ранее была доступна только как:

expr ? val_if_true : val_if_false

в 5.3. Можно оставить среднюю часть, например, EXPR?: Val_if_false , который эквивалентен:

expr ? expr : val_if_false

из руководства :

с PHP 5.3, можно оставить среднюю часть условного оператора. Выражение EXPR1?: EXPR3 Возвращает EXPR1 IFPR1 EXPR1 EXPR1 True , и EXPR3 в противном случае.

135
ответ дан 24 November 2019 в 08:50
поделиться

Посмотрите здесь:

Начиная с PHP 5.3, можно опускать среднюю часть тернарного оператора. Выражение expr1?: Expr3 возвращает expr1, если expr1 имеет значение TRUE, и expr3 в противном случае.

Анонимные функции: Нет, они не существовали до версии 5.3.0 (см. Первое примечание под примерами), по крайней мере, таким образом:

function ($arg) { /* func body */ }

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

5
ответ дан 24 November 2019 в 08:50
поделиться

?: оператор - это условный оператор (часто называемый тернарным оператором):

Выражение (expr1)? (expr2): (expr3) оценивается как expr2 , если expr1 оценивается как TRUE , и expr3 if expr1 оценивается как FALSE .

В случае:

expr1 ?: expr2

Выражение оценивается как значение expr1 , если expr1 равно true и expr2 в противном случае :

Начиная с PHP 5.3, можно опускать среднюю часть тернарного оператора. Выражение expr1?: Expr3 возвращает expr1 , если expr1 оценивается как TRUE , и expr3 в противном случае.

35
ответ дан 24 November 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: