[PHP 5.0.4 + GMP] Und es ward Octet-Stream

Surma

Erfahrenes Mitglied
Hossa,

Ich habe gerade GMP entdeckt, und kann kaum erwarten es zu benutzen.
Ich wollte eigentlich nur schnell 'ne Seite hinkloppen, die einen Bruch
in einen Kettenbruch umwandelt. Folgender Colde
PHP:
<?
	echo "Testmessage!"
	$p = gmp_init ("5232558139") ;
	$q = gmp_init ("1000000000") ;
	$a = gmp_div ($p, $q) ;
	$qnext = gmp_sub ($p, gmp_mul ($a, $q)) ;
	echo "[".gmp_strval($a) ;
	$p = $q ;
	$q = $qnext ;
	while ($q != 0)
	{
		$a = gmp_div ($p, $q) ;
		$qnext = gmp_sub ($p, gmp_mul ($a, $q)) ;
		echo ", ".gmp_strval($a) ;
		$p = $q ;
		$q = $qnext ;
	}
	echo "]" ;
?>

Bei einem Fehler (Auskommentieren einer der INIT-Zeilen), dann ist die Testmessage zu sehen. Ansonsten will mir der Browser den Download eines Octet-Streams andrehen.
Hae?
Bitte helfen.
 
Okay, ich habs slebsyt herrausgefunden.
War noch nciht so sehr GMP gewohnt. In folgender Zeile steckt der Teufel:
PHP:
 while ($q != 0)

$q enthaelt ja nicht die Nummer, sondern eine Referenz, Pointer o.ae. auf die GMP-Interne Klassenstrucktur.

Die Zeile muss lauten:
PHP:
 while (gmp_cmp($q, "0") != 0)

Vielleicht hilft es ja noch so manchem verwirrten GMP-Einsteiger wie mir.
 
Zurück