Recentemente stavo rivedendo parte del mio codice e ho notato che in un impeto di distrazione, avevo lasciato una struttura come la seguente:
$guid = empty($subscription->guid) ? : $subscription->guid;
Ora, questo non stava facendo quello che doveva ed è sbagliato , ma poiché quella proprietà è sempre impostata ora funzionava bene, e non c'è nessun errore di sintassi dal 5.3 a causa della seguente modifica :
Da PHP 5.3, è possibile tralasciare la parte centrale dell'operatore ternario. Espressione expr1?: Expr3 restituisce expr1 se expr1 restituisce TRUE e expr3 in caso contrario.
Non ero a conoscenza di questo cambiamento, e ora sono curioso di sapere se dovrei usarlo o meno. Questo è qualcosa che mi mancava molto in lingue come il rubino dove puoi fare ad esempio, a = b || c
per ottenere uno b
o c
piuttosto un "vero" booleano. Tuttavia, la sintassi che hanno scelto per l'operatore ternario mi sembra un po 'controintuitiva. Dovrei usarlo nel codice di produzione? Mi sono decisamente gettato quando l'ho visto per caso.