为什么PhpStorm中的调试窗口中不显示变量?

为什么PhpStorm中的调试窗口中不显示变量?,phpstorm,xdebug,Phpstorm,Xdebug,我让Xdebug工作,我可以在断点处停止并逐步通过断点。但是它已经到达的变量不会显示在变量窗口中。请参见图片-变量$test和$test2不显示 我在php.ini中的配置是 [XDebug] zend_extension = /usr/lib/php/20170718/xdebug.so xdebug.remote_host = 127.0.0.1 xdebug.remote_port = 10000 xdebug.remote_mode = req xdebug.remote_enable

我让Xdebug工作,我可以在断点处停止并逐步通过断点。但是它已经到达的变量不会显示在变量窗口中。请参见图片-变量
$test
$test2
不显示

我在php.ini中的配置是

[XDebug]
zend_extension = /usr/lib/php/20170718/xdebug.so
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 10000
xdebug.remote_mode = req
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.idekey = "PHPSTORM"

我也有类似的问题。碰巧php版本是7.2,但Dockerfile为7.1版本安装了扩展。

在过去几天里,我自己也一直在为这个问题头疼。在CLI模式下运行(例如,在运行测试时)很好,但是尝试在浏览器中查看站点并使其达到断点时,我也没有看到任何本地初始化的变量

出现的问题是OpCache模块。这似乎做了一些内部优化,变量对Xdebug堆栈不可见

通过删除PHP模块配置中的符号链接来禁用OpCache模块,您将能够看到预期的本地变量

我在Docker容器中的Ubuntu映像上运行了最新的PHP7.2(FPM)


HTH=)

请显示整个调试窗口,而不是其中的一部分。@LazyOne我已经更新了图片。好吧<代码>$test2是可以理解的(不在任何地方使用)。。但是
$test
应该已经列出。你能用一些简单的代码重现同样的情况吗?它在另一个项目中的行为是否相同?IDE和Xdebug版本?Xdebug日志要说什么?如果它没有列在那里,那么IDE不显示它也就不足为奇了。可能会显示
phpinfo()
输出的整个xdebug部分——可能有一些选项会有所帮助。你能计算当前值吗?您是如何安装当前的IDE版本的--它是完整的安装程序还是内置的更新?请尝试删除IDE并使用完整安装程序再次安装。@LazyOne非常感谢,我将仔细查看这些建议并报告。就这样!!!!很不错的。不要加载opcache。我正在用xdebug 2.6.1运行docker image php:7.2-apache并删除opcache工作!!!你就是那个人。最初的尝试和错误,然后发现一些关于内部优化的信息(不记得现在在哪里)证实了opcache是罪魁祸首:)我也可以确认,opcache是一个问题我可以确认禁用opcache也解决了这个问题。非常感谢。在vscode中使用飞轮的本地自定义环境(xdebug无论如何都需要)和PHP调试器运行了这个程序。在我的站点的
php.ini
中注释掉了行
zend_extension=/opt/php/7.3.2/lib/php/extensions/no-debug-non-zts-20180731/opcache.so
,并重新启动了站点。由于堆栈涉及的所有内容,因此很难跟踪此问题。非常感谢你!!