最近 PHP 触ってないけど

http://d.hatena.ne.jp/naoya/20100905/1283662354

push () で func_get_args() 使っているので、コンストラクタでも使うと
arrayを使わなくても済む気がします。

    function List_RubyLike ($array) {
        if (!is_array($array)) {
            $array = func_get_args();
        }
        $this->list =& $array;
    }


関数もいいけどどうせならstaticで

    static function factory($array)
    {
        if (!is_array($array)) {
            $array = func_get_args();
        }
        return new self( $array );
    }

http://jp.php.net/manual/ja/function.array-push.php
読むと

注意: もし配列にひとつの要素を加えるために array_push() を使用するなら、 関数を呼ぶオーバーヘッドがないので、$array[] = を使用するほうがいいです。

なので、

    function push () {
        foreach (func_get_args() as $v) {
            $this->list[] = $v;
        }
        return $this;
    }

ま、ハッシュ配列使わないなら、

    function push () {
        $this->list = array_merge($this->list, func_get_args());
        return $this;
    }

array_sum()なんてのもあるみたいだし、

    function sum () {
        $result = array_sum($this->list);
        $this->list = array();
        return $result;
    }

dumpは無条件に出力してしまうのでこんな感じはどう?
return 抜けていた。

    function dump($out = false) {
        return var_export($this, $out);
    }