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

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.

Leave a Comment