Ho pensato di utilizzare l'assegnazione di riferimento come scorciatoia per gestire variabili potenzialmente non definite.È una cattiva pratica utilizzare l'assegnazione di riferimento in PHP quando si gestiscono variabili potenzialmente indefinite?
In altre parole, invece di:
$foo = isset($this->blah['something']['else']) ? $this->blah['something']['else'] : null;
if (!is_null($foo) && ...){
//do something with $foo
}
avrei potuto fare questo:
$foo = &$this->blah['something']['else'];
if (!is_null($foo) && ...){
//do something with $foo
}
Sembra semplice, giusto? A causa del modo in cui PHP gestisce l'assegnazione per riferimento, non devo preoccuparmi di $ this-> blah ['something'] ['else'] in fase di definizione, perché se non esiste verrà creato automaticamente e impostato a NULL.
Questa strategia è disapprovata?
direi che è stata una cattiva pratica. Mi aspetto che il secondo modulo sollevi un avviso a prescindere dall'operatore di riferimento, e le comunicazioni dovrebbero essere schiacciate ovunque possibile. – halfer
Giusto, tranne il secondo modulo non alzerà un avviso! L'assegnazione di PHP per riferimento è difficile come quella. –
Nella prima parte, perché non pensi di utilizzare l'operatore '@' per sopprimere deliberatamente le notifiche di errore? – hohner