especificaciones rápidos:devuelto nulo por referencia a través de __get()
PHP 5.3
error_reporting(-1) // the highest
estoy usando el truco __get()
por referencia al acceso mágicamente elementos de la matriz arbitraria de profundidad en un objeto.
Ejemplo rápido:
public function &__get($key){
return isset($this->_data[$key])
? $this->_data[$key]
: null;
}
Esto no funciona como cuando el $key
no está definida, se trata de volver null
por referencia, que por supuesto lanza Only variable references should be returned by reference ...
He intentado modificar de la siguiente manera:
public function &__get($key){
$null = null;
return isset($this->_data[$key])
? $this->_data[$key]
: $null;
}
aún así no funciona, sin embargo, estoy suponiendo que la fijación de $null
a null
esencialmente unset()
s es.
¿Qué puedo hacer? ¡Gracias!
Sólo pensé que podría promover esta cuestión, ya que es poco relevante (magia PHP y referencias); __callStatic(), call_user_func_array(), references, and PHP 5.3.1. Todavía tengo que encontrar una respuesta ... además de modificar el núcleo de PHP.
Interesante. Gracias ** webbiedave **; ¿Por qué el operador ternario causa el error? – Dan
Información impresionante en la edición allí ** webbiedave **; no sabía eso sobre los operadores ternarios. Ciertamente lo comprometeré con la memoria. Ojalá pudiera ** + 2 **. – Dan
+1 Para una solución al problema específico y la educación. –