我有大約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