【发布时间】:2016-03-31 18:57:12
【问题描述】:
大家好,圣诞快乐!
我在效率方面遇到了一些问题,我希望 StackOverflow 社区可以帮助我。
在我的一个(静态)类中,我有一个函数从我的数据库中获取大量信息,解析该信息并将其放入格式化数组中。此类中的许多函数都依赖于该格式化数组,并且在整个类中,我多次调用它,这意味着应用程序在一次运行中多次执行此过程,我假设这不是很有效。所以我想知道是否有更有效的方法可以做到这一点。有没有办法让我将格式化数组存储在静态函数中,这样我每次需要格式化数组中的信息时就不必重新执行整个过程?
private static function makeArray(){
// grab information from database and format array here
return $array;
}
public static function doSomething(){
$data = self::makeArray();
return $data->stuff;
}
public static function doSomethingElse(){
$data = self::makeArray();
return $data->stuff->moreStuff;
}
【问题讨论】:
-
makeArray()的结果在每次调用时总是相同吗?如果是这样,您可以将其缓存在静态属性中,如果已填充则返回。 -
如果数据库中的数据被更新(这种情况不会经常发生并且是手动完成的),那么它将改变 makeArray() 的结果,因此缓存它可能是一个不错的选择。你会建议我如何缓存这样的结果?
标签: php database class persistent static-classes