PHP Memcache的用户创建的对象
-
21-08-2019 - |
题
需要关于使用Memcache的一些帮助。
我创建了一个类,并希望其存储在内存缓存的对象,发现这样做,请告诉我,我该怎么错在何处麻烦。以下是我的代码
// Class defined by me
class User
{
public $fname;
public $age;
/**
* @return unknown
*/
public function getfname() {
return $this->fname;
}
/**
* @return unknown
*/
public function getage() {
return $this->age;
}
/**
* @return unknown
*/
public function setfname() {
return $this->fname;
}
/**
* @return unknown
*/
public function setage() {
return $this->age;
}
}
//Code for Storing
<?php
$objMemcache = new Memcache();
$objMemcache->connect('127.0.0.1', 11211);
$obj = new User();
$obj->setfname('John');
$obj->setage(32);
$objMemcache->set('user1', $obj, false, 60);
$obj1 = new User();
$obj1->setfname('Doe');
$obj1->setage(23);
$objMemcache->set('user2', $obj1, false, 60);
var_dump($objMemcache->get('user1'));
?>
问题是我不能够确保该对象实际上是在Memache堂妹越来越店当我尝试使用$ objMemcache->的get($键),后续代码var_dump函数打印无关的检索。
请帮忙。
能否请您解释一下在我的代码中的错误。
感谢soulmerge,弗兰克和Kevin,所述解决方案工作,只是另一个疑问。
制作类变量私有工作得很好,但是当我尝试对类对象转换成使用JSON_STRING json_encode()再次给我一个空值,在任何建议
解决方案
您类是错误的,试试这个:
<?php
// use this to display errors
ini_set('error_reporting',E_ALL);
ini_set('display_errors',true);
// Class defined by me
class User
{
private $fname;
private $age;
/**
* @return string
*/
public function getfname() {
return $this->fname;
}
/**
* @return string
*/
public function getage() {
return $this->age;
}
/**
* @return void
*/
public function setfname($value) {
$this->fname = $value;
}
/**
* @return void
*/
public function setage($value) {
$this->age = $value;
}
}
$objMemcache = new Memcache();
$objMemcache->connect('127.0.0.1', 11211);
$obj = new User();
$obj->setfname('John');
$obj->setage(32);
$objMemcache->set('user1', $obj, false, 60);
$obj1 = new User();
$obj1->setfname('Doe');
$obj1->setage(23);
$objMemcache->set('user2', $obj1, false, 60);
var_dump($objMemcache->get('user1'));
不隶属于 StackOverflow