PHP@phpで良く使うsetter,getter

<?php
function ValueContainer()
{
    return new ValueContainer();
}
class ValueContainer
{
    /**
     * values
     */
    private $_values = Array();

    /**
     * call
     */
    public function __call($name,Array $arguments)
    {
        count($arguments) 
        and $arguments = array_shift($arguments)
        $this->_values[$name] = $arguments;
        return $this;
    }

    /**
     * get
     */
    public function __get($name)
    {
        return $this->_values[$name];
    }
}
?>

んで、こんな感じに使う

<?php
$val = ValueContainer()
    ->id('a')
    ->pass('b');

echo $val->id . PHP_EOL;
echo $val->pass . PHP_EOL;
?>

こんな感じで良くクラスのインタフェースを作るかなぁ