Pau*_*ema 9 php arrays hash object unique-id
我使用数据类来为我的数据提供模板,我想从数据类中的数据计算一个唯一的id,这样我就可以检查具有该数据的模板是否已经在缓存中,然后提供该版本.
所以从类数组中获取唯一id的函数可以帮助我
像这样的东西工作,但相当昂贵的md5(序列化($ classdata))
我希望有一些功能来获取唯一的ID而不序列化所有数据,或至少不必在PHP中
在此先感谢,最好,保罗
编辑:我很快就庆祝,唯一的id在当前实例中只是相同的,重新启动相同的脚本会产生另一个id,然后当然不是在使用的cache testscript中:
<?php
class foo {}
$f = new foo;
print spl_object_hash($f);
Run Code Online (Sandbox Code Playgroud)
生病了更深入的解释
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();
Run Code Online (Sandbox Code Playgroud)
现在,如果给模板引擎的数据在缓存中,它使用该版本,防止必须重新解析数据集的模板
这是一个简单的template_data视图,它实际上是延迟加载并使用memcached dataid,所以数据实际上并没有被提取,直到它在模板中使用