有没有更好的方法来缓存PHP中的属性?

时间:2014-07-03 05:45:27

标签: php oop

我有一个已经扩展基类的任意数量的类,我希望每个扩展类都有一个具有相同名称的静态函数。这个功能通常非常昂贵,本质上只需要计算一次,因为它的结果总是相同的。因此,如果尚未缓存,我想将其缓存为属性。

我想要实现的棘手的事情是让这个缓存延迟加载,即。仅在调用静态函数时才加载。可能只会使用其中一个类,并且我们希望避免将所有类都缓存,无论它们是否会被使用。

我目前的工作原理,但我想知道是否有更好的方法。

<?php

echo Inside1::something() . "\n";
echo Inside2::something();

class Outside {

}

class Inside1 extends Outside {

    private static $name;

    public static function something(){
        if(!self::$name){
            self::$name = "Inside 1";
        }
        return self::$name;
    }
}

class Inside2 extends Outside {

    private static $name;

    public static function something(){
        if(!self::$name){
            self::$name = "Inside 2";
        }
        return self::$name;
    }

}

0 个答案:

没有答案