这似乎按照我想要的方式工作,但我更喜欢在到处使用它之前先询问:
假设我有这门课:
class A{
static $data = null;
public function getData(){
if(isset(self::$data)) return self::$data;
self::$data = // load sql data here
}
}
就像某种单例,但在函数本身中......
getData() 可以由外部对象调用。 我不希望每次页面加载加载多个数据。
我做了一些廉价的基准测试,看起来它完全按照我想要的方式工作。
您认为这是不好的做法吗?
最佳答案
人们会争论这是否是不好的做法。 如果您将数据存储在静态变量中,我建议也将 getData() 方法设置为静态。并且 $data 应设置为私有(private)或公共(public)。 所以它会是:
class A {
static protected $data = null;
static public function getData(){
if(isset(self::$data)) return self::$data;
self::$data = // load sql data here
}
}
并且不要忘记在加载数据后返回数据。
关于php - 将数据存储在静态属性中(php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254328/