PHP Memcacheのユーザー作成されたオブジェクト
-
21-08-2019 - |
質問
Memcacheの約いくつかの助けを必要としています。
私は、クラスを作成し、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'));
?>
問題は、私は$ objMemcache-を使用して、それを取得しようとすると、オブジェクトが実際にMemacheだってにおける店舗を取得している場合、私は確認してくださいすることができませんです>($キー)を取得する、のvar_dump機能は何も出力しません。
助けてくださいます。
<時間>あなたが私のコードでエラーを説明していただけます。
ありがとうsoulmerge、フランクとケビンは、解決策は、ちょうど別の疑問が働いています。
うまく働いたプライベートクラス変数を作るが、私は)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