What are the PHP operators "?" and ":" called and what do they do?

conditional-operator, conditional-statements, php, syntax

Solution

This is the conditional operator.

$x ? $y : $z

means "if `$x` is true, then use `$y`; otherwise use `$z`".

It also has a short form.

$x ?: $z

means "if `$x` is true, then use `$x`; otherwise use `$z`".

People will tell you that `?:` is "the ternary operator". This is wrong. `?:` is a ternary operator, which means that it has three operands. People wind up thinking its name is "the ternary operator" because it's often the only ternary operator a given language has.

Problem

What are the `?` and `:` operators in PHP? For example: ``` (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) ```

Original source

Related problems