我正在使用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