public function filterBy()
{
$args = func_get_args();
$operator = '==';
$field = @$args[0];
$value = @$args[1];
$split = @$args[2];
$collection = clone $this;
if (is_string($value) && array_key_exists($value, static::$filters)) {
$operator = $value;
$value = @$args[2];
$split = @$args[3];
}
if (is_object($value)) {
$value = (string) $value;
}
if (array_key_exists($operator, static::$filters)) {
$collection = call_user_func_array(static::$filters[$operator], array($collection, $field, $value, $split));
}
return $collection;
}