我有大约100个字符串变量,需要在PHP网站的每个网页上提供。数据在运行时永远不会改变,但将来我需要多组数据并在用于页面请求的数据之间切换。字符串的长度从5到600个字符不等。我目前正在包含一个文件,其中包含这样的数据:使用opcache在PHP中缓存静态数据
$someStuff = "abc";
$otherStuff = "def";
// etc
我正在使用opcache。这种方法会从opcache中受益多少?我看过this answer。如果缓存的好处值得做密钥查找,我可以更改为使用关联数组。但是,对于我而言,使用静态数组字段的类比声明变量更适合我的情况,这一点我不清楚。
也许一个函数与静态变量是一个好主意?这是否与静态类字段相同,更好还是更差?
function getItem ($name) {
static $items = array("someStuff" => "abc");
return $items[$name];
}
也许函数而不是每个字符串的变量?如果不是所有的字符串都用于给定的页面(通常是这种情况),这会更好吗?
function someStuff() { return "abc"; }
function otherStuff() { return "def"; }
什么是最佳解决方案?需要在每一页上的数据,所以我想尽可能高效,避免从磁盘/数据库中读取等
感谢您的解释。我有一种感觉,现在担心还为时过早,但自从它在每一页上都很难阻止自己。我已经去了类和静态领域。干杯! – NateS
顺便说一句,如果它们是真正的常量,那么请阅读[PHP类常量](http://www.php.net/manual/en/language.oop5.constants.php)。 – TerryE
他们的确是。用一对正则表达式替换我的源代码,我切换到类常量。使用opcache和类常量时有什么开销?恐怕微基准可能会测量错误的东西,或者很难测量每页负载的开销。此外,它主要是为了满足我的好奇心。 :) – NateS