2009-05-12 7 views
1

Besoin d'aide avec Memcache.PHP Memcache utilisateur créé objets

J'ai créé une classe et je veux stocker ses objets dans Memcache, en trouvant des difficultés à le faire s'il vous plaît dites-moi où je me trompe. Ce qui suit est mon 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')); 

?> 

Le problème est que je ne suis pas en mesure de vous assurer que si l'objet est réellement obtenir magasin dans Memache coz lorsque je tente de le récupérer en utilisant la objMemcache- $> get ($ key), la La fonction var_dump n'imprime rien.

Aidez-nous s'il vous plaît.


Pouvez-vous s'il vous plaît expliquer l'erreur dans mon code.

Merci soulmerge, Frank et Kevin, la solution a fonctionné, juste un autre doute.

Faire les variables de classe a travaillé privé bien, mais lorsque je tente de convertir l'objet de classe en un JSON_STRING en utilisant json_encode() il me donne encore une valeur vide, des suggestions sur ce

+0

le troisième paramètre à $ objMemcache-> set() doit être un entier (0 dans votre cas) – soulmerge

+1

Je lâchai votre code dans un fichier, supprimé la

Répondre

1

Votre classe est faux, essayez cette :

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