Тернарный оператор в php

Совсем недавно открыл для себя сокращенную запись тернарного оператора в php.

Пример стандартной записи:

$a = 0;
$a = empty($a) ? 1 : 2;
var_dump($a);  

Выведет: 1

Если, к примеру, надо проверить переменную на пустоту и присвоить собственно её или же совершить какое-то действие стандартным способом получиться следующая запись:

$a = 0;
$a = $a ? $a : 2;
var_dump($a);  

Вернет 2.

Сокращенной записью можно сделать

>$a = $a ?: 2;

Удобно использовать при возврате значения из функции:

static $instance = null;  
function initBrowser();  
return self::$instance ?: self::$instance = new Browser();  
$browser = $this->initBrowser();

Вызов функции initBrowser() вернет $instance, если он был определен ранее, или же присвоит ему новое значение и вернет его.