PHP Memcache созданные пользователем объекты - PullRequest
1 голос
/ 13 мая 2009

Нужна помощь с 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-> get ($ key), функция var_dump ничего не печатает.

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


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

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

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

1 Ответ

1 голос
/ 13 мая 2009

Ваш класс не так, попробуйте это:

<?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'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...