我是一個AS3編碼器,我做了一些PHP,我很難做一個可以緩存變量的靜態類。PHP緩存類
這是我到目前爲止有:
<?php
class Cache {
private static $obj;
public static function getInstance() {
if (is_null(self::$obj)){
$obj = new stdClass();
}
if (!self::$instance instanceof self) {
self::$instance = new self;
}
return self::$instance;
}
public static function set($key,$value){
self::$obj->$key = $value;
}
public static function get($key){
return self::$obj->$key;
}
}
?>
我用的是下面我的變量設置成我的靜態類的一個對象:
<?php
include 'cache.php';
$cache = new Cache();
$cache->set("foo", "bar");
?>
這是檢索的變量
<?php
include 'cache.php';
$cache = new Cache();
$echo = $cache->get("foo");
echo $echo //doesn't echo anything
?>
我在做什麼錯?謝謝
這裏你的問題是,你要建一個單身,但你**不能**實例化。當你設置'foo'時,你正在存儲該特定實例的值。但是當你想要檢索它時,你正在創建一個新的實例。 – mrlee 2012-02-09 23:24:07
@fuzzyDunlop,好的,我看到了,所以我去了$ cache = Cache :: getInstance(); $ cache-> set(「foo」,「bar」);設置和$ cache = Cache :: getInstance(); echo $ cache-> get(「foo」);仍然不起作用:( – Eric 2012-02-09 23:28:48
)在這段代碼中,你的'get'和'set'方法是'static',所以在調用它們時你需要使用'::'而不是' - >'。 – mrlee 2012-02-09 23:41:02