Issue with php memcache fetching the value with 'true


Issue with php memcache fetching the value with 'true'

当我存储memcache键"show errors"的值为true时使用下面的方法调用,它会返回success(即true),表示已设置。

$memcacheObj->set("show-errors", true);

但当我使用以下方法调用获得密钥时,我得到的是1,而不是真正的

$memcacheObj->get($key);

有人能帮我吗。我需要获得存储在memcache中的值。

我已经使用以下方法交叉验证了我的memcached服务器是否在本地系统上运行——它返回true。

$this->cacheObj->connect('127.0.0.1', '11211');

与注释中所说的不同,序列化布尔值TRUE的未序列化值仍然为TRUE。问题似乎不是你的内存缓存,而是你的检查。

试着检查变量是否为=== true,而不是打印出来,你会看到的。

下面是一些示例代码,向您展示它是如何工作的:

<?php
$peter = true;
$serPeter = serialize($peter);
$unserPeter = unserialize($serPeter);
if($unserPeter === TRUE) {
  echo 'TRUE';
}
elseif($unserPeter === 1) {
  echo '1';
}
else {
  echo '$unserPeter is : ('.$unserPeter.')';
}