Возможный Дубликат: Каковы операторы PHP “?” и “:” названный и что они делают?
Twitto использует несколько новых функций, доступных с PHP 5.3:
- Постоянный DIR
- ?: оператор
- Анонимные функции
Что номер 2 делает с?: в PHP 5.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
IFPR1EXPR1
EXPR1True
, иEXPR3
в противном случае.
Начиная с PHP 5.3, можно опускать среднюю часть тернарного оператора. Выражение expr1?: Expr3 возвращает expr1, если expr1 имеет значение TRUE, и expr3 в противном случае.
Анонимные функции: Нет, они не существовали до версии 5.3.0 (см. Первое примечание под примерами), по крайней мере, таким образом:
function ($arg) { /* func body */ }
Единственным способом был create_function ()
, что медленнее, довольно громоздко и подвержено ошибкам (из-за использования строк для определений функций).
?:
оператор - это условный оператор (часто называемый тернарным оператором):
Выражение
(expr1)? (expr2): (expr3)
оценивается какexpr2
, еслиexpr1
оценивается как TRUE , иexpr3
ifexpr1
оценивается как FALSE .
В случае:
expr1 ?: expr2
Выражение оценивается как значение expr1
, если expr1
равно true и expr2
в противном случае :
Начиная с PHP 5.3, можно опускать среднюю часть тернарного оператора. Выражение
expr1?: Expr3
возвращаетexpr1
, еслиexpr1
оценивается как TRUE , иexpr3
в противном случае.