public function defaults($object = null) { $args = self::_wrapArgs(func_get_args(), 1); list($object) = $args; $num_args = count($args); if ($num_args === 1) { return $object; } $is_object = is_object($object); $array = (array) $object; $__ = new self(); $extensions = $__->rest($args); foreach ($extensions as $extension) { $extension = (array) $extension; $array = array_merge($extension, $array); } return self::_wrap($is_object ? (object) $array : $array); }