Simple, but sometimes we use it in wrong way!
$a = '';
echo $a ?: 'a string';
$b = '';
echo $b ?? 'b string';
So:
isset ~ ??
!empty ~ ?:
More example:
$a = ['1' => ['2' => []]];
print($a['1']['2'] ?: 'a string'); // print out s string ~ !empty
echo PHP_EOL;
$b = ['1' => ['2' => []]];
print($b['1']['2'] ?? 'b string'); // print out Array ~ isset