我有一个与 memcache 服务器交互的类。我有不同的功能来插入、删除和检索数据。最初每个函数都会调用memcache_connect()
,但是这是不必要的,例如:
mc->insert()
mc->get()
mc->delete()
将建立三个 memcache 连接。我通过为该类创建一个构造来解决此问题:
function __construct() {
$this->mem = memcache_connect( ... );
}
然后$this->mem
在需要资源的地方使用,因此三个函数中的每一个都使用相同的memcache_connect
资源。
没关系,但是如果我在其他类中调用该类,例如:
class abc
{
function __construct() {
$this->mc = new cache_class;
}
}
class def
{
function __construct() {
$this->mc = new cache_class;
}
}
那么它仍然在打两个memcache_connect
电话,而它只需要一个。
我可以用全局变量来做到这一点,但如果我不需要,我宁愿不使用它们。
全局变量实现示例:
$resource = memcache_connect( ... );
class cache_class
{
function insert() {
global $resource;
memcache_set( $resource , ... );
}
function get() {
global $resource;
return memcache_get( $resource , ... );
}
}
那么无论该类被调用多少次,都只会调用一次memcache_connect
。
有没有办法做到这一点,或者我应该只使用全局变量?