php - 生成对象的唯一 ID,该 ID 在各个实例中保持不变

标签 php codeigniter

我使用以下命令从数据库生成一个对象:

$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/

相关文章:

php - 无法在 codeigniter 中使用 where 和 join 条件获取结果

php - 如何将 jquery 变量传递给 drupal (ajax)

c# - 如何用C#从php到asp.Net调用json_encode函数?

php - 使用 Amazon SES 通过 PHP 发送时,并非所有邮件都会被收件人收到

php - 使用 uri 段获取值

javascript - 单击背景颜色更改并保存在数据库中

php - 如何在 PHP 中的插入查询中使用 where 语句来获取 NOT NULL VALUE

php - 如何显示从该表单中选择的数据?

php - 用php递减字符

php - 无法选择数据库时 Codeigniter 重定向到自定义 View