我使用以下命令从数据库生成一个对象:
$game = $this->game_model->get_by('slug', 'some-title');
我还在 Codeigniter 中使用缓存库,通过以下方式写入缓存文件:
$this->cache->write($game, $cache);
其中 $game 是对象,$cache 是该对象的标识符。
我想为此对象生成一个唯一的 ID,用作缓存名称。类似于 spl_object_hash但这在后续实例中将保持不变。
例如,如果我这样做:
$cache = spl_object_hash($game);
// Cache object
$this->cache->write($game, $cache);
它将生成000000006c5ce27300000000564a8706.cache
作为唯一ID,但如果我重新加载页面,我会得到一个不同的ID,这违背了缓存的目的。
如何获得对象的一致唯一 ID?
最佳答案
您可以使用serialize(),然后对其进行散列。
$cache = hash('sha1', serialize($game));
关于php - 生成对象的唯一 ID,该 ID 在各个实例中保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16305786/