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();
写成这样 可以缓解一下
然后 有没有更好的写法
单例模式