getIterator()); } elseif ($value instanceof Iterator) { return iterator_count($value); } elseif ($value instanceof PDOStatement) { return $value->rowCount(); } elseif ($value instanceof Traversable) { return iterator_count($value); } elseif ($value instanceof ArrayAccess) { if ($value->offsetExists(0)) { return 1; } } elseif (is_object($value)) { return count($value); } return 0; } }