<?php
$cache = array();
function fibonacci($nr) {
global $cache;
if (isset($cache[$nr])) {
return $cache[$nr];
}
switch ($nr) {
case 0:
die("Invalid Nr\n");
case 1:
return 1;
case 2:
return 1;
default:
$r = fibonacci($nr - 2) + fibonacci($nr - 1);
$cache[$nr] = $r;
return $r;
}
}
echo fibonacci($argv[1])."\n";
?>