?: Elvis Operator
About 1 min
?:
Elvis Operator
Returns the right operand if the left operand is falsy (expression)
Description
The Elvis Operator is a little like a conditional where the result of the operation is the first non-falsy value from left to right.
A falsy value is any of the following:
- an unset / undefined variable
- any value with a
null
data type - a
str
or generic with the valuefalse
,null
,0
,no
,off
,fail
,failed
, ordisabled
- a number (
num
,float
orint
) with the value0
- an empty object or zero length array
- and, of course, a boolean with the value
false
Examples
Assign with a default value
» $foo = $bar ?: "baz"
If $bar
is falsy, then the value of $foo
will be "baz".
Multiple elvis operators
» $unset_variable ?: null ?: false ?: "foobar"
foobar
Detail
Whats in a name?
Wikipedia explains this best where it says:
The name "Elvis operator" refers to the fact that when its common notation,
?:
, is viewed sideways, it resembles an emoticon of Elvis Presley with his signature hairstyle.
See Also
- Operators And Tokens: A table of all supported operators and tokens
- Pipeline: Overview of what a "pipeline" is
- Schedulers: Overview of the different schedulers (or 'run modes') in Murex
&&
And Logical Operator: Continues next operation if previous operation passes??
Null Coalescing Operator: Returns the right operand if the left operand is empty / undefined (expression)?
stderr Pipe: Pipes stderr from the left hand command to stdin of the right hand command (DEPRECATED)err
: Print a line to the stderrexpr
: Expressions: mathematical, string comparisons, logical operatorsout
: Print a string to the stdout with a trailing new line charactertry
: Handles non-zero exits inside a block of codetrypipe
: Checks for non-zero exits of each function in a pipeline||
Or Logical Operator: Continues next operation only if previous operation fails- null: null function. Similar to /dev/null
This document was generated from gen/expr/elvis-op_doc.yaml.