PHP syntax question: What does the question mark and the colon mean?

综合编程 2018-02-08 阅读原文

Possible Duplicate:

quick php syntax question

return $add_review ? FALSE : $arg;

What do question mark and colon mean?

Thanks

This is the PHP ternary operator
(also known as a conditional operator) - if first operand evaluates true, evaluate as second operand, else evaluate as third operand.

Think of it as an "if" statement you can use in expressions. Can be very useful in making concise assignments that depend on some condition, e.g.

$param = isset($_GET['param']) ? $_GET['param'] : 'default';

There's also a shorthand version of this (in PHP 5.3 onwards). You can leave out the middle operand. The operator will evaluate as the first operand if it true, and the third operand otherwise. For example:

$result = $x ?: 'default';

It is worth mentioning that the above code when using i.e. $_GET or $_POST variable will throw undefined index notice and to prevent that we need to use a longer version, with isset
or a null coalescing operator
which is introduced in PHP7:

$param = $_GET['param'] ?? 'default';
Hello, buddy!

责编内容by:Hello, buddy!阅读原文】。感谢您的支持!