Max: "größere" Variable als INT?

Hi,
zur Demonstration meines Problems kurz ein Script:

<?php
 settype($x, int);
 $i=1;
 while(true) {
  $result=1;
  for($x=($i + 1); $x=($x - 1); $x >= 1) {
   $result=($result * $x);
  }
  print($i." : ".$result."\n");
  print("- - - - - - - - - - -\n");
  $i=( $i + 1 );
 }
?>

Wenn man dieses Ausführt bekommt man bis 170 sinnvolle Ergebnisse, danach nur noch Fehlermeldungen, was nicht weiter verwunderlich ist wenn man das Ergebniss für $i = 170 kennt: 7.25741561531E+306

Leider kann ich für PHP keine "längere" Variable als INT finden und wollte mich nun erkundigen ob das wirklich "schon" alles ist was PHP schafft?

Danke
Maax^

  1. Hello,

    Integer ist i.d.R. eine 32bit-signed Zahl in PHP. Das ist aber plattformabhängig. Auf 64-Bit-Systemen ist das Maximum also entsprechend größer. Ich hatte aber leider noch keine Gelegenheit, das selber auszuprobieren...

    Eventuell helfen Dir für größere Zahlen die BCMATH-Funktionen

    http://www.php.net/manual/en/ref.bc.php

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hi,
      danke für die schnelle und umfassende Antwort!!!

      Eventuell helfen Dir für größere Zahlen die BCMATH-Funktionen

      http://www.php.net/manual/en/ref.bc.php

      Perfekt, genau das brauchte ich.
      Die Funktion berechnet nun x! für alle möglichen Zahlen, ist gerade bei 4575, braucht dafür 0.11 Sekunden und das Ergebnis hat 14763 Stellen (weshalb ich es nun mal nicht mit poste)... :-)

      Danke!
      Maax^

    2. Hallo Tom,

      der Integerwert haengt vom Dateisystem ab.
      Bei Baumstrukturen betraegt er 7,
      bei Straeuchern sagenhafte 42.

      Gruesse
      Haha