Fonksiyonunda statik değişken başka bir işlevi çağırarak set

0 Cevap php

PHP çalışıyorum.

Ben birkaç kez bir değişken miktarda çağrılan bir işlev (F1) var. Bu işlev içinde, başka bir işlev (F2) bir sabit veri seti yüklemeniz gerekir. Ancak set yüklemenin bazı veritabanı aramaları ve işlenmesini içerir, her yüklenen aynı veri seti var. Art arda F2 diyoruz ve havai / fazlalık / işleme gereksinimlerini artırmak yerine, ben F1 statik bir değişken içine sonucu koymak istiyorum. Ancak, herhangi bir nedenle, bana işlev çağrısı kullanılarak statik olarak değişkeni ayarlamak için izin vermez.

Bir kod örneği:

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"
    );
}

Yukarıdaki çalışmıyor. ';' (',', 'Bekliyor veya beklenmedik - Bu bir hata ile sonuçlanır.

Aslında argümanlar listesinde veri kümesi var calledRepeatedly çağrıları emin yapma ekstra çalışma içerdiğini, ancak bunun işe yarayacağını fark yoktur, ve referans dolayısıyla havai ortadan kaldırarak geçmiş olacaktır.

Bunu yapmak için herhangi bir yolu var mı?

0 Cevap