`cache_get` always returns an object and I'm a bit confused by its values. There's probably a short generic function that can handle this for once and for all. $cache = cache_get('key'); if ($cache) { // doesn't work, cache_get always returns an object } if (!$cache || ($cache->created < time() - $cache->expire)) { // cache is expired? I'm not sure } Just checking for the data member doesn't cut it. I had seen the issue reported on d.o (in 2009) but that doesn't really help me fix it on any live site. So I'm looking for a function that will still make cache work for me without resorting to storing the cache myself in the database.