Benötigen Sie Hilfe mit Memcache.PHP Memcache Benutzer erstellte Objekte
Ich habe eine Klasse erstellt und möchte ihre Objekte in Memcache speichern. Wenn Sie Probleme haben, sagen Sie mir bitte, wo ich falsch liege. Es folgt mein Code
// 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'));
?>
Das Problem ist, ich nicht in der Lage bin sicher zu machen, wenn das Objekt ist eigentlich immer lagern in Memache Coz, wenn ich versuche, es abzurufen unter Verwendung des objMemcache- $> get ($ key), der Die var_dump-Funktion gibt nichts aus.
Bitte helfen.
Können Sie bitte den Fehler in meinem Code erklären.
Danke soulmerge, Frank und Kevin, die Lösung hat funktioniert, nur ein weiterer Zweifel.
der Herstellung der Klassenvariablen privat hat gut funktioniert, aber wenn ich versuche, die Klasse-Objekt in ein JSON_STRING mit json_encode zu konvertieren() es gibt mir wieder einen leeren Wert, irgendwelche Vorschläge auf diesem
der dritte Parameter auf $ objMemcache-> set() soll eine ganze Zahl (0 in diesem Fall) seine – soulmerge
ich Ihren Code in einer Datei gelöscht, entfernt, um die php-Tag in der Mitte und ausgeführt es? . var_dump hat wie erwartet ein Benutzerobjekt zurückgegeben. Die Werte von fname und age sind null, aufgrund des Fehlers, auf den Kevin unten hinweist, aber die Memcache-Aufrufe funktionieren gut. Wenn dies nicht der Fall wäre, hätte gre() anstelle eines leeren Objekts null oder falsch zurückgegeben. Haben Sie verifiziert, dass memcached ausgeführt wird? –