He estado pensando en usar la asignación de referencia como un atajo para tratar con variables potencialmente indefinidas.¿Es una mala práctica utilizar la asignación de referencia en PHP al manejar variables potencialmente indefinidas?
En otras palabras, en lugar de:
$foo = isset($this->blah['something']['else']) ? $this->blah['something']['else'] : null;
if (!is_null($foo) && ...){
//do something with $foo
}
que podía hacer esto:
$foo = &$this->blah['something']['else'];
if (!is_null($foo) && ...){
//do something with $foo
}
parece más sencillo, ¿verdad? Debido a la manera en que PHP maneja la asignación por referencia, no tengo que preocuparme de que $ this-> blah ['something'] ['else'] esté definido, porque si no existe, se creará automáticamente y establecerá a NULL
¿Está esta estrategia desaprobada?
Yo diría que fue una mala práctica. Esperaría que el segundo formulario levantara un aviso independientemente del operador de referencia, y los avisos deberían aplastarse siempre que sea posible. – halfer
Derecha, ¡excepto que el segundo formulario no generará un aviso! La asignación de PHP por referencia es así de difícil. –
En la primera parte, ¿por qué no considera usar el operador '@' para suprimir deliberadamente los avisos de error? – hohner