John Main Logo

John Main

Code. Design. Hosting. Maintenance.

09
Oct '12

Often I have need to get and set object data and rather than writing individual functions for each call, I use PHP’s built-in __call function.
This example assumes that you have an object-scope array called ‘data’, but can be easily adapted to any other data structure.

public function __call($method, $args) {
$opt = substr($method, 0, 3);
$field = strtolower(substr($method, 3));
if($opt == 'get')
return $this->data[$field];
elseif($opt == 'set' && $args)
$this->data[$field] = $args[0];
else {
//any other logic here
}
}