我正在使用PHP。通過調用另一個函數設置的函數中的靜態變量
我有一個函數(F1)被稱爲可變的次數。在該函數中,我需要從另一個函數(F2)加載一個常量數據集。它始終加載相同的數據集,但加載該集合涉及一些數據庫查找和處理。不是反覆調用F2並增加開銷/冗餘/處理要求,我想將結果放入F1中的靜態變量。但是,無論出於何種原因,它都不允許我使用函數調用將該變量設置爲靜態。
A碼例如:
function calledRepeatedly() {
static $dataset = loadDataset();
// some minor processing here using the dataset
// and probably a loop
return "stuff";
}
function loadDataset() {
//intensive dataset load code
//plus a database lookup or two
//whatever else
return array(
"data1",
"data2"
);
}
上述方法不工作。它會導致一個錯誤 - 意外的'(',期待','或';'
我意識到它會工作,它會通過引用傳遞,從而消除開銷,但涉及額外的工作的確保調用來calledRepeatedly實際上在參數列表中的數據集。
有沒有辦法做到這一點?
您不能將表達式存儲在靜態變量中。它們在編譯時被解析,所以函數不能被調用。我不知道如果PHP支持靜態功能。 – 2010-12-07 17:16:43
如何製作課程並將其保存在一個屬性中? ;-) – thedom 2010-12-07 17:19:14