public function __call($name, $arguments)
{
if (!count($this)) {
return;
}
$class = get_class($this->first());
if (method_exists($class, $name)) {
foreach ($this as $item) {
switch (count($arguments)) {
case 0:
$item->{$name}();
break;
case 1:
$item->{$name}($arguments[0]);
break;
case 2:
$item->{$name}($arguments[0], $arguments[1]);
break;
case 3:
$item->{$name}($arguments[0], $arguments[1], $arguments[2]);
break;
case 4:
$item->{$name}($arguments[0], $arguments[1], $arguments[2], $arguments[3]);
break;
case 5:
$item->{$name}($arguments[0], $arguments[1], $arguments[2], $arguments[3], $arguments[4]);
break;
case 6:
$item->{$name}($arguments[0], $arguments[1], $arguments[2], $arguments[3], $arguments[4], $arguments[5]);
break;
default:
call_user_func_array(array($item, $name), $arguments);
break;
}
}
}
}