php - Return null by reference via __get() -
quick specs:
php 5.3 error_reporting(-1) // highest i'm using __get() reference trick magically access arbitrarily deep array elements in object.
quick example:
public function &__get($key){ return isset($this->_data[$key]) ? $this->_data[$key] : null; } this doesn't work when $key isn't set, tries return null reference, of course throws only variable references should returned reference ... tried modifying follows:
public function &__get($key){ $null = null; return isset($this->_data[$key]) ? $this->_data[$key] : $null; } still doesn't work though, i'm assuming setting $null null unset()s it.
what can do? thanks!
just figured i'd promote question, it's relevant (php magic , references); __callstatic(), call_user_func_array(), references, , php 5.3.1. i've yet find answer ...besides modifying php core.
this has nothing null, rather ternary operator:
rewriting if/else won't throw notice:
public function &__get($key) { $null = null; if (isset($this->_data[$key])) { return $this->_data[$key]; } else { return $null; } } ternary operators cannot result in references. can return values.
Comments
Post a Comment