Di recente stavo rivedendo parte del mio codice e ho notato che in un attacco di distrazione, avevo lasciato una struttura simile alla seguente:
$guid = empty($subscription->guid) ? : $subscription->guid;
Ora, questo non stava facendo ciò che è necessario e è sbagliato , ma dal momento che quella proprietà è sempre impostata ora funzionava correttamente e non c'è alcun errore di sintassi dal 5.3 a causa di il seguente cambiamento :
Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.
Non ero a conoscenza di questo cambiamento, e ora sono curioso di usarlo o meno. Questo è qualcosa che mi mancava terribilmente da linguaggi come Ruby, dove puoi fare ad esempio, a = b || c
per ottenere b
o c
piuttosto che un 'vero' booleano. Tuttavia, la sintassi che hanno scelto per l'operatore ternario mi sembra un po 'controintuitiva. Dovrei usare questo nel codice di produzione? Mi ha sicuramente gettato quando l'ho visto per caso.