Ciao, il primo codice è un if aritmetico, quindi il ? serve a far capire che dopo di lui vengono, rispettivamente, l'istruzione nel caso la condizione sia vera e, dopo i due punti, la condizione nel caso sia falsa. In pratica questo si potrebbe riscrivere così.
Per quanto riguarda invece la @ prima di una funzione, questa permette di non far visualizzare e skippare eventuali errori della stessa.Codice PHP:
if(return ( !empty( $recipients[0] ) ) ) $recipients[0]
else false;