IRC Php机器人-嵌套错误

IRC Php机器人-嵌套错误,php,sockets,recursion,functional-programming,irc,Php,Sockets,Recursion,Functional Programming,Irc,我正在使用,你可以在页面上看到所有的代码 我遇到的问题是主函数递归调用它,因此在100次调用后,它只会出错,我得到以下错误: 致命错误:已达到最大函数嵌套级别“100”,正在中止!在第106行的C:\xampp\xampp\htdocs\league\bot.php中 我将粘贴以下一些主要功能: function main($config) { $data = fgets($this->socket, 256);

我正在使用,你可以在页面上看到所有的代码

我遇到的问题是主函数递归调用它,因此在100次调用后,它只会出错,我得到以下错误:

致命错误:已达到最大函数嵌套级别“100”,正在中止!在第106行的C:\xampp\xampp\htdocs\league\bot.php中

我将粘贴以下一些主要功能:

 function main($config)
    {             
            $data = fgets($this->socket, 256);

            echo nl2br($data);

            flush();

            $this->ex = explode(' ', $data);


            if($this->ex[0] == 'PING')
            {
                    $this->send_data('PONG', $this->ex[1]); //Plays ping-pong with the server to stay connected.
            }

            $this->main($config);
     }
有没有一种方法可以实现相同的功能,而不用递归地调用函数本身?有这样的嵌套级别可以吗?我应该增加嵌套限制xdebug吗?

是-一个
while()
循环

这种类型的无限递归在PHP中无法有效工作,因为它不能消除尾部调用。虽然可以增加嵌套限制,但最终会在崩溃之前消耗越来越多的内存。

Yes-a
While()
循环

这种类型的无限递归在PHP中无法有效工作,因为它不能消除尾部调用。虽然可以增加嵌套限制,但最终会在崩溃之前消耗越来越多的内存