ID:               28827
 Updated by:       [EMAIL PROTECTED]
 Reported By:      valyala at tut dot by
-Status:           Open
+Status:           Feedback
 Bug Type:         Documentation problem
 Operating System: any
 PHP Version:      4.3.7
 New Comment:

The example from docs works perfectly with latest PHP5 & PHP4.

Concerning stack overflows, read php-dev archives.
For example this post:
http://lists.php.net/article.php?group=php.internals&article=8851
and all the tread:
http://lists.php.net/article.php?group=php.internals&article=8840

Short version: this is expected behaviour.


Previous Comments:
------------------------------------------------------------------------

[2004-06-18 12:23:54] valyala at tut dot by

Description:
------------
The following example code, which "will calculate factorial of 1000
(pretty big number) very fast" on documentation page
http://php.net/gmp/ crashes PHP.
-------------------------------
<?php
function fact($x) 
{
    if ($x <= 1) {
        return 1;
    } else {
        return gmp_mul($x, fact($x-1));
    }
}

echo gmp_strval(fact(1000)) . "\n";
?> 
-------------------------------

The next PHP code avoids the crash:
-------------------------------
<?php
function fact($x) {
  $result = 1;
  while ($x > 1) {
    $result = gmp_mul($result, $x--);
  }
  return $result;
}

echo gmp_strval(fact(1000)) . "\n";
}
?>
-------------------------------

This bug related to the following bugs: #7720, #15522, #26212.
It seems that PHP4.3.7 (and older) don't handle stack overflow during
function calls.
You can find the maximum recursion depth for your version of PHP
independently. Just play with $rec_depth number in the following
script:
---------------------------
<?php
function f($n) {
  if (--$n) f($n);
}

/* adjust this number to find the
   maximum recursion depth
*/
$rec_depth = 1000;
f($rec_depth);
?>
---------------------------

p.s. Are the volunteers in PHP developement team, who wanted to track
stack overflow problem?


Reproduce code:
---------------
see above

Expected result:
----------------
decimal view of 1000!

Actual result:
--------------
PHP crash


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28827&edit=1

Reply via email to