我的网站(由PHP提供)使用一些值,这些值计算起来很昂贵(并且计算是确定性的),因此我想在第一个请求中缓存结果。然后,我可以使用这个功能:PHP中是否有服务器级别的静态变量?
function MyValue($valueID) {
if (!isset($myValueCache[$valueID])) {
$myValueCache[$valueID] = ... // The long and expensive calculation.
}
return $myValueCache[$valueID];
}
的问题是,如何申报$myValueCache
以保持其脚本的不同调用之间的值?我会叫它“服务器级静态变量”或类似的东西。一个简单的static
变量不是所需的解决方案。 http://www.elated.com/articles/php-variable-scope-all-you-need-to-know/写道:“一旦脚本退出,一个静态变量就会被销毁,就像本地和全局变量一样。”我想保留价值,直到我明确地unset
它。谢谢:)
PS。 “昂贵”意味着数据库访问。在开发时计算和硬编码结果是不可能的。
如果用户特定,则将其填入会话中,如果未将其保存在数据库字段中,因为您已有数据库。不昂贵'SELECT value FROM cache WHERE id = $ valueID' – AbraCadaver
好吧,经过漫长的沉默,我想最终的答案是:“在PHP中没有这样的变量声明。” (但我不确定,这就是我问这个问题的原因。)感谢您推荐的解决方法。带有@ AbraCadaver解释的内存数据库可能是一个解决方案。 –