2009-05-12 12 views
1

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

+0

der dritte Parameter auf $ objMemcache-> set() soll eine ganze Zahl (0 in diesem Fall) seine – soulmerge

+1

ich Ihren Code in einer Datei gelöscht, entfernt, um die

Antwort

1

Ihre Klasse falsch ist, versuchen Sie dies :

<?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'));