我想实现以下功能
所有用户访问a.php 我用数组记录下所有用户的数据在系统b.php 被调用的时候 我能取到某个用户的数据我现在用cookie session 都不行 在a.php能记录下来 但系统掉也弄个b.php的时候取不到
分数实在不够。。只有25分了。

解决方案 »

  1.   

    给一个用 memcache 的例子
    类定义文件 TShare.php<?php
    class TShare {
      private static $_Instance;
      private $memcache;
      private function __construct() {
        $this->memcache = new Memcache;
        $this->memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
      }
      public static function getInstance() {
        if(empty(self::$_Instance)) self::$_Instance = new self();
        return self::$_Instance;
      }
      function __set($name, $val) {
        $this->memcache->set($name, $val, false);
      }
      function __get($name) {
        return $this->memcache->get($name);
      }
    }
    保存数据include 'TShare.php';
    TShare::getInstance()->a = 123;
    读取数据include 'TShare.php';
    echo TShare::getInstance()->a;
    如果嫌 TShare::getInstance 太长,也可以在 TShare.php 中定义一个函数,比如 S
    function S() {
      return TShare::getInstance();
    }这样就可以
    S()->b = 'abcd';
    echo S()->b;
    这样使用了
      

  2.   

    其实说白了就是利用第三方存储引擎,但是不能用cookie和session。最近Laruence开发了个轻量级的php共享内存扩展,叫Yac,我还没试用过,不过看了介绍还不错。以后装上这个扩展,对于一些小规模的共享内存应用,用这个扩展就可以了,不用再用memcached或redis了。