Say I have a class that looks like this:
class UserModel {
private $_userData;
function __construct($user_data){
$this->_userData = $user_data;
}
}
What is called like this:
$user = json_decode('{"name":"Neal","surname":"MyLastName"}');
$the_user = new UserModel($user);
I don’t want every time I want the username to be executed $this->_userData->nameinside the class.
Well, if I set the default value for the first and last name and create a function __get()as follows:
class UserModel {
private $_userData;
private $name = 'default';
private $surname = 'default';
function __construct($user_data){
$this->_userData = $user_data;
}
function __get($var){
if(isset($this->_userData->$var))return $this->_userData->$var;
if(isset($this->$var))return $this->$var;
return null;
}
}
Here is a demo of what I'm trying to do: http://codepad.viper-7.com/cuS9Lx
source
share