Non è la stessa cosa? Il primo mi funziona il secondo no
$pagato può esistere o non esistere (viene passato tramite una checkbox), se esiste $pagato diventa 1 altrimenti $pagato diventa 0 poi il valore 1/0 lo inserisco in un sql.

codice:
if ($pagato) { $pagato = '1' } else { $pagato = '0' };

$pagato ? $pagato = '1' : $pagato = '0';
Credo che nel secondo caso $pagato non viene valutato se esiste o meno, c'è una funzioncina che controlla questa cosa? Tipo exist($pagato)?

Grazie