Edit report at http://bugs.php.net/bug.php?id=37675&edit=1
ID: 37675
Comment by:
Reported by: thomas at ecommerce dot com
Summary: OOP -> Maximum function nesting error
Status: Bogus
Type: Bug
Package: Unknown/Other Function
Operating System: SuSE Linux 10,0
PHP Version: 5.1.4
New Comment:
This arbitrary limit is set by xDebug. If you disable it you will find
out that PHP aborts when the stack is exhausted ("Segmentation fault"),
rather than after 100 function calls.
I reply to this old thread because I couldn't find this simple sollution
anywhere on the internets. Hopefully it helps someone.
Previous Comments:
------------------------------------------------------------------------
[2006-06-02 11:00:48] [email protected]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
$this doesn\'t move to the static scope after calling it...
------------------------------------------------------------------------
[2006-06-02 11:00:10] thomas at ecommerce dot com
You didn't test it at all. I have xDebug installed, yea, but also
without acitvated any special modul/extension i get:
php test.php
Fatal error: Allowed memory size of 62914560 bytes exhausted (tried to
allocate 12 bytes) in /home/Thomas/test.php on line 10
because of endless loop
------------------------------------------------------------------------
[2006-06-02 10:55:30] [email protected]
Do not file bugs when you have Zend extensions (zend_extension=)
loaded. Examples are Zend Optimizer, Zend Debugger, Turck MM Cache,
APC, Xdebug and ionCube loader. These extensions often modify engine
behavior which is not related to PHP itself.
There is no such error message in PHP itself.
------------------------------------------------------------------------
[2006-06-02 10:46:40] thomas at ecommerce dot com
Description:
------------
PHP 5.1.4 seams like running an endless loop here with this code. When
running the bottom code, i get following error message:
Fatal error: Maximum function nesting level of '100' reached, aborting!
in /home/Thomas/test.php on line 11
Its not possibe, that this cause an endless loop. $this is setted, when
created with 'new', so checkthis() should only be called 2 times.
Reproduce code:
---------------
<?php
class Test1
{
public $anyVar = "Setted";
public static function checkThis($var = null)
{
if (!isset($this) || !isset($this->anyVar)) {
$obj = new Test1();
return $obj->checkThis($var);
}
echo "$var\n";
}
}
$return = Test1::checkThis("Works!");
var_dump($return);
Expected result:
----------------
Output of script should be:
Works!
NULL
Actual result:
--------------
Fatal error: Maximum function nesting level of '100' reached, aborting!
in /home/Thomas/test.php on line 11
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=37675&edit=1