PHP 静态变量 缓存 问题

// app.php
class App
{
    public function getData()
    {
        $path = __DIR__.'/data.json';
        $data  = json_decode(file_get_contents($path), true);
        return $data;
    }
}

// info1.php
$app = new App;
$info = $app->getData();

// info2.php
$app = new App;
$info = $app->getData();

对于这种情况 getData() 每运行一次都会读取文件一次

// app.php
class App
{
    public function getData()
    {
        static $data = [];

        if (!$data) {
            $path = __DIR__.'/data.json';
            $data  = json_decode(file_get_contents($path), true);
        }

        return $data;
    }
}

// info1.php
$app = new App;
$info = $app->getData();

// info2.php
$app = new App;
$info = $app->getData();

写成这样 可以缓解一下

然后 有没有更好的写法

php
讨论数量: 1

为什么第二种,就可以缓解呢?

2个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!