<?
class MethodChaining {
var $data = array();
function __call($name, $args)
{
$prefix = strtolower(substr($name, 0, 3));
$postfix = strtolower(substr($name, 3, strlen($name)));
switch($prefix)
{
case 'get':
return isset($this->data[$postfix]) ? $this->data[$postfix] : false;
break;
case 'set':
if(!empty($args))
$this->data[$postfix] = count($args) == 1 ? $args[0] : $args;
return $this;
break;
}
}
}
$chain = new MethodChaining;
echo $chain->setInteger(1)->getInteger();
echo $chain->setString('hello, world')->getString();
?>