php - 将数据存储在静态属性中(php)

标签 php mysql

这似乎按照我想要的方式工作,但我更喜欢在到处使用它之前先询问:

假设我有这门课:

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/

相关文章:

php - 如何更改 laragon 主机名域?

PHP x86如何在没有外部程序的情况下获得> 2 GB文件的文件大小?

mysql - 使用 MySQL 触发器在插入时创建数据库

mysql - 当尝试在 Rails 中将数据转换为 json 时,UTF8 崩溃

php - 多类别/产品关系的数据库模式

javascript - 如何计算点击次数并在循环javascript中更改其值?

php - 无法加载模块 [redis],错误 :/usr/local/lsws//modules/redis. so: undefined symbol: zend_objects_destroy_object

php - MySQL-如何知道行的自增id

php - 发布高分和检索位置

php - $_POST 数组到 MySQL _v2