warum nicht selbst cachen
bearbeitet von plNatürlich kannst Du Rückgabewerte von Funktionen cachen. Daß der Cache statisch sein muss hast Du ja schon richtig erkannt. So kannst den cache auch in der Funktion selbst deklarieren:
~~~php
echo mal2(2), "\n", mal2(2), "\n", mal2(2), "\n", mal2(3);
function mal2($x){
static $cache = array ();
if( isset($cache[$x]) ){
print "hit!\n";
return $cache[$x];
}
else{
$cache[$x] = 2*$x;
return $cache[$x];
}
}
~~~
MfG
PS: In Perl gibts ein Modul Memoize da wäre nur der Name der Funktion zu übergeben und schon wird gecached, auch mit Builtinfunktionen. Vielleicht gibt ja sowas auch für PHP?