PHP 5.3+ allows using `?:` to shorten the ternary if statements. We're requiring 5.3.3+ for phpBB 3.1, so that is acceptable. Basically it says, if the value before `?:` evaluates true (or rather, does not evaluate false), return that value; otherwise, return the value following the `?:`.

So in the following:

    $var = 'dog';
    // $var evaluates as true because it has a non-empty value
    // so the value of $var is used in the echo
    echo $var ?: 'cat'; // output: dog
    
    // That is the functional equivalent of doing:
    $var = 'dog';
    echo !empty($var) ? $var : 'cat'; // output: dog

Now this doesn't work in all cases, such as this:

    $var = 'dog';
    // $var == 'dog' is a condition that returns the boolean value true
    // rather than the value of $var itself
    var_dump($var == 'dog' ?: 'cat'); // ouput: bool (true)
    // In this case, the proper usage is, in fact:
    echo $var == 'dog' ? 'dog' : 'cat'; // output: dog

Anyway, all that to say: this is proper syntax and usage.