我已经使用Xdebug设置了PHP Storm,我正在尝试调试控制台程序
程序运行正常,但是如果我尝试调试它以查看最新情况,那么调试就会在用户输入数据的部分停止。
$line = fgets ($GLOBALS['StdinPointer'],$length);
调试只是停止,没有错误信息或其他任何内容。
当我正常运行程序时,它等待来自用户的信息并按预期继续
给出以下功能:
function read ($length='255')
{
if (!isset ($GLOBALS['StdinPointer']))
{
$GLOBALS['StdinPointer'] = fopen ("php://stdin","r");
}
$line = fgets ($GLOBALS['StdinPointer'],$length);
return trim ($line);
}
我在每一行都设置了一个断点,我点击了“恢复计划”。图标和程序进入下一行,但是当我到达fgets函数时,调试只是停止(所有断点消失,无法从命令行输入输入)
就好像它无法像在正常运行时那样停在fget函数
没有记录程序从日志中崩溃
答案 0 :(得分:0)
您的问题缺少一些重要信息。你说:“调试只是停止,没有错误信息或任何东西。”,但你忽略了它是否在等待用户输入。这就是它应该做的事情。
如果它正在等待,那么只需输入一些内容,在$length
输入后,调试将继续。
如果没有等待用户输入,那么你确实遇到了问题。我不能完全解释这种情况,除了说等待输入的PHP和等待输入的调试器之间必须有一些交互。
我认为您更有可能只需要按一下键盘,它就会响应。 : - )