You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xdebug 3.1.1调试仅显示$_COOKIE等4个超全局变量 其余变量未初始化

Xdebug自定义变量显示uninitialized问题修复方案

环境说明

  • PHP 7.4.26
  • Xdebug 3.1.1
  • Apache/2.4.41 (Ubuntu)
  • 调试客户端:PhpStorm

问题表现

调试过程中PHP脚本内的所有自定义变量都标记为uninitialized,无论脚本内容如何编写,调试时仅能获取到$_COOKIE、$_GET、$_REQUEST、$_SERVER这4个超全局变量。

原配置参考

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host = false
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9000
xdebug.log=/xdebug.log

修复步骤

步骤1:补充Xdebug配置

编辑php.ini中的xdebug配置段,新增以下参数,修改后完整配置如下:

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host = false
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9000
xdebug.log=/xdebug.log
; 新增配置开始
xdebug.idekey=PHPSTORM
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024
xdebug.var_display_max_depth = 5
; 新增配置结束

步骤2:调整Opcache优化配置

Opcache过高的优化级别会裁剪掉调试所需的变量信息,编辑opcache配置文件(通常位于php.ini的[opcache]段或者单独的opcache.ini文件),修改参数如下:

opcache.optimization_level = 0x1000
opcache.save_comments = 1

配置修改完成后执行命令重启Apache服务生效:
systemctl restart apache2

步骤3:调整PhpStorm调试视图配置

  1. 打开顶部菜单File > Settings > PHP > Debug,确认Debug端口配置和xdebug.client_port一致为9000
  2. 进入File > Settings > PHP > Debug > Data Views
  3. 取消勾选隐藏未初始化的变量选项,确保自定义变量展示开关处于开启状态

步骤4:验证修复效果

新建测试脚本test.php,在标记位置打断点:

<?php
$custom_str = "test content";
$custom_arr = ["a", "b", "c"];
// 此处打断点
phpinfo();

启动调试后,命中断点时查看变量面板,确认可以正常展示$custom_str、$custom_arr两个自定义变量即可。


内容的提问来源于stack exchange,提问作者Adam Mason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:06:07