It's called a ternary, and it's bad and lazy coding practice because of it's limitations and lack of understanding by others... Imagine if someone coded a whole bunch of ternary's and turned the code over to someone who never saw it before (like in your case), imagine how hard it would be to later maintain that code. You can read up on it here.
Below is the better if/else way of writing the ternary out.
<?php
// Bad way
$variable = if( isset($foo) ) ? unserialize($foo) : array();
// Better way
if(isset($foo)) {
$variable = unserialize($foo);
} else {
$variable = array();
}
?>