我在
PHP工作.
我有一个被称为可变次数的函数(F1).在该函数中,我需要从另一个函数(F2)加载一个常量数据集.它始终与加载的数据集相同,但加载集合涉及一些数据库查找和处理.我不是反复调用F2并增加开销/冗余/处理要求,而是将结果放入F1的静态变量中.但是,无论出于何种原因,它都不允许我使用函数调用将变量设置为静态.
一个代码示例:
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的调用实际上在参数列表中具有数据集.
有没有办法做到这一点?