Moin!
anscheint habe ich ordentlich viel mist zusammengecodet, der index der in der splinefunktion über _index($x) gesucht wird ist manchmal undefiniert, ein fehler der einer nadel im heuhaufen gleicht....
private function _index($x){
error_log ('count($this->def): '.count($this->def));
for($k=0; $k<=count($this->def)-3; $k++){//muesste -2 sein
if($this->def[$k] <= $x && $x <= $this->def[$k+1]){
sort($this->def);//testaufruf
return $k;
}
}
# hier fehlt ein return!
}
Kein Wunder. Deine Funktion ist sehr gut dazu geeignet, in manchen Fällen einfach nichts genauer: NULL, also nicht '' oder 0 zurück zu geben. (else-Zweig fehlt bzw. return bei Volldurchlauf.
Das NULL wird dann in Zeile 313
$index = $this->_index($x);
einfach kritiklos übernommen und führt in Zeile 326
$h = $this->def[$index + 1] - $this->def[$index];
zum Fehler, weil der Array $this->def natürlich kein Element NULL hat.
Jörg Reinholz