求助:PhpStorm调试窗口中变量无法显示的问题
看起来你的Xdebug已经和PHPStorm建立了基本调试连接——毕竟能正常断点暂停、单步调试,那变量不显示大概率是配置细节或者IDE设置的问题,试试下面这些排查方向:
检查Xdebug与PHP、PHPStorm的版本兼容性
从你的zend_extension路径里的20170718可以判断,你的PHP版本是7.2,对应的Xdebug应该是2.x系列(Xdebug 3.x仅支持PHP7.4及以上版本)。你可以在终端执行php -v查看Xdebug版本,如果是3.x的话,建议换成适配PHP7.2的Xdebug 2.9.x版本,版本不兼容很容易导致变量展示异常。补充Xdebug变量展示相关配置
你的php.ini里缺少几个控制变量显示的关键配置,把下面这些内容加到[XDebug]区块里:xdebug.show_local_vars = 1 xdebug.var_display_max_depth = 10 xdebug.var_display_max_children = 256 xdebug.var_display_max_data = 1024其中
xdebug.show_local_vars会强制显示当前作用域的局部变量,后面三个配置则是放宽变量展示的深度、子元素数量和数据长度限制,避免因为默认限制太严格导致变量不显示。检查PHPStorm的调试面板设置
打开PHPStorm的File > Settings > Languages & Frameworks > PHP > Debug > Xdebug,确认Max. variable depth和Max. children的值不要设得太低(比如设为10和256)。另外,在调试会话的Variables面板里,看看有没有展开「Locals」分组——有时候变量会默认藏在这个分组里,不是直接显示在根目录下。确认变量确实在当前执行路径中被定义
你可以在断点处临时加一行代码:var_dump($test, $test2); exit;,然后访问页面或者执行脚本,看看终端/浏览器里能不能输出这两个变量的值。如果输出不了,说明你的断点可能打在了变量定义之前,或者变量所在的代码分支没被执行到。重启服务与IDE
修改php.ini之后,一定要重启你的Web服务器(Apache/Nginx)或者PHP-FPM进程,然后重启PHPStorm,确保所有配置都生效。
内容的提问来源于stack exchange,提问作者Michael Millar

