gpt4 book ai didi

php - 从数组/类计算一个唯一的 id

转载 作者:可可西里 更新时间:2023-11-01 12:17:36 25 4
gpt4 key购买 nike

我使用数据类为模板提供我的数据,我想根据数据类中的数据计算一个唯一 ID,这样我就可以检查具有该数据的模板是否已在缓存中,然后提供该版本。

所以一个从类的数组中获取唯一 ID 的函数会帮助我。

类似这样的方法可行但成本相当高 md5(serialize($classdata))

我希望有一些函数可以在不序列化所有数据的情况下获取唯一 ID,或者至少不必在 php 中序列化。

编辑:
我庆祝得太早了,唯一id只在当前实例中相同重新启动同一脚本会生成另一个 id,当然该 id 不在缓存中。

使用的测试脚本:

<?php
class foo {}
$f = new foo;
print spl_object_hash($f);

我会更深入地解释

class template_data implements IteratorAggregate, ArrayAccess, Countable {

private $_data;

//some methods for the overloaded classes
//

//the getId function
public function getId() {
return hash('md5',serialize($this->_data));
}

}

$t = new template('file');
$d = new template_data('some data');
$t->addData($d);
$t->display();

现在,如果提供给模板引擎的数据在缓存中,它会使用该版本避免必须重新解析数据集的模板。

这是 template_data 的简单 View ,它实际上是延迟加载并使用 memcached dataid,因此在模板中使用数据之前不会实际获取数据。

最佳答案

你可以试试 spl_object_hash()

来自文档

This function returns a unique identifier for the object. This id can be used as a hash key for storing objects or for identifying an object.

关于php - 从数组/类计算一个唯一的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4733955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com