2009-05-12 5 views
1

Нужна помощь с Memcache.PHP Созданные пользователем объекты 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')); 

?> 

Проблема в том, что я не в состоянии, чтобы убедиться, если объект на самом деле получить магазин в Memache сог, когда я пытаюсь получить его с помощью ($ ключ) $ objMemcache-> становишься, тем Функция var_dump ничего не печатает.

Пожалуйста, помогите.


Не могли бы вы объяснить ошибку в моем коде.

Спасибо, soulmerge, Фрэнк и Кевин, решение сработало, просто еще одно сомнение.

Making переменного класса частным работал нормально, но когда я пытаюсь преобразовать объект класса в JSON_STRING с использованием json_encode() он дает мне снова пустое значение, любые предложения по этому

+0

Третий параметр $ objMemcache-> набор() должен быть целым числом (0 в вашем случае) – soulmerge

+1

я уронил свой код в файл, устранило

ответ

1

Вашего класс является неправильным, попробуйте это :

<?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')); 
Смежные вопросы