Тернарный оператор.

//Если 
$a = empty;
$b= 4;
$b = $a?:9;
echo $b;
// То ошибка:Parse error: syntax error, unexpected ';', expecting '(' in C:\OSPannel\OpenServer\domains\localhost\indexfile.php on line 25
$a = 1;
$b= 4;
$b = $a?:9;
echo $b;
// То $b выведит равным 1
$a = 0;
$b= 4;
$b = $a?:9;
echo $b;
// или
$a = null;
$b= 4;
$b = $a?:9;
echo $b;
//То $b выведит равным 9

Сможете прокомментировать почему так выводит в разных примерах?