Когда сокращенный синтаксис, используемый в сценарии, я пытаюсь использовать его, но его дать мне некоторые странные результатыЧто означает этот символ?: Означает в PHP?
($value == 'yes' ?: 'Show Text');
Благодарности
Когда сокращенный синтаксис, используемый в сценарии, я пытаюсь использовать его, но его дать мне некоторые странные результатыЧто означает этот символ?: Означает в PHP?
($value == 'yes' ?: 'Show Text');
Благодарности
Это binary conditional operator введена в PHP 5.3. условный оператор РНР традиционно является тройной оператора (принимают три операнда), но двоичная (принимают два операнда) была добавлена форма, что делает операнд между ?
и :
опционально:
Начиная с PHP 5.3, это можно опустить среднюю часть тернарного оператора. Выражение
expr1 ?: expr3
возвращаетexpr1
, еслиexpr1
оценивает поTRUE
иexpr3
в противном случае.
Таким образом, в вашем примере, если $value
является 'yes'
, то результат TRUE (1), так как результат значение первого выражения (в $value == 'yes'
). Если $value
не 'yes'
, результатом является 'Show Text'
.
Также известен как оператор elvis https://en.wikipedia.org/wiki/Elvis_operator –
@SamDufel: Ах! И «до» в статье, конечно, в этой форме условный оператор * не является тройным оператором, он является двоичным оператором. Круто. –