简体   繁体   中英

What does `?:` mean?

In an online tutorial I have seen the following snippet of code:

$this->data = $data ?: \Input::all();

Is this a standard ternary operator? What would happen when $data evaluates to true ?

Does the following code do the same thing as the original I posted?

$this->data = $data ? null : \Input::all();

It's a ternary operator, shortcut of

 $this->data = $data? $data : \Input::all();

From http://php.net/manual/en/language.operators.comparison.php

Since PHP 5.3, it is possible to leave out the middle part of the ternary operator.

Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM