我正在使用 Visual Studio Code 1.16.1 以及 Felix Becker 的 PHP Debug extension。我可以正常连接到 XDebug,并且可以在调试窗格中设置断点和查看变量,没有任何问题。
然而,调试控制台似乎有些无用,我只能运行超级基本的 PHP 命令,并且似乎无法很好地评估常规的 PHP 命令或与我的应用程序交互。
当尝试在调试控制台中键入任何 PHP 语句或表达式时,我始终会收到 error evaluating code
的错误提示。似乎我所能做的就是声明变量、数组和对象。
我不能声明类、函数或使用控制结构 (if
, foreach
等)。
可行:
$x = 4
//4
$x
//4
$x = new stdClass();
//stdClass
$x = [];
//array(0)
($x) ? yes : no
// yes
(!$x) ? yes : no
// no
preg_replace('/dog/', 'cat', 'The quick brown fox jumps over the lazy dog.')
// "The quick brown fox jumps over the lazy cat."
request()
//Illuminate\Http\Request (Laravel helper methods work)
无法工作:
echo "yes"
//error evaluating code
if ($x == 4) { echo "yes" }
//error evaluating code
for ($i=0; $i < 5; $i++) { }
//error evaluating code
function foo() {}
//error evaluating code
class SimpleClass {}
//error evaluating code
$var_dump($x)
//null
调试控制台是否应该像真正的REPL一样工作?我知道PHPStorm的控制台可以评估任何你投入其中的PHP代码,Visual Studio Code能否做到同样的事情?还有其他人遇到这个问题吗?
谢谢。
var_dump
会将错误报告到控制台,但在使用“监听 XDebug”模式时会将输出发送到浏览器。 - JP Lewecho
和var_dump
将其输出发送到浏览器,而不是 STDOUT。无论如何,在我的调试流程中,我已经学会不使用控制台。我只在调试面板中查看变量,并在常规编辑器窗口中更新和刷新代码。 - JP Lew