2010年09月05日(日)
■[PHP]最近 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);
}
トラックバック - http://d.hatena.ne.jp/bobchin/20100905
いくつか取り込んでみました!