小编Nat*_*iel的帖子

通过调用另一个函数设置函数中的静态变量

我在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"
    );
}
Run Code Online (Sandbox Code Playgroud)

以上不起作用.它导致错误 - 意外'(',期待','或';'.

我确实认识到它会工作,并且它将通过引用传递,从而消除开销,但是这涉及额外的工作,以确保对来自calledRepeatedly的调用实际上在参数列表中具有数据集.

有没有办法做到这一点?

php variables static function call

5
推荐指数
1
解决办法
8629
查看次数

标签 统计

call ×1

function ×1

php ×1

static ×1

variables ×1