为什么对象的所有属性没有显示在调试器的变量部分中

Ben*_*bin 5 php xdebug visual-studio-code vscode-debugger

我在某些 PHP 代码上使用 XDebug 和 Visual Studio Code 调试器,并且变量部分没有显示我的对象之一的所有属性。下面的屏幕截图显示,如果我添加$this->_data到“监视”部分,该属性确实存在。但是,在“变量”部分中_data并未显示为属性。$this为什么 Visual Studio Code 不显示 中的所有属性$this,以及如何让它显示所有属性?

在此输入图像描述

Psy*_*oMo 8

这个问题与属性/字段是否私有/受保护有关。

您必须通过命令 show_hidden=1 告诉 XDebug 将私有字段等详细信息转发到您的 IDE。

在带有Felix Beckers php 调试器扩展的 VSCode 中,您可以通过launch.json添加字段来添加此设置xdebugSettings(有关详细信息,请参阅他们的文档)

以下对我有用:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9090,
            "xdebugSettings": {
                "max_children": 200,
                "max_data": 512,
                "max_depth": 4,
                "show_hidden": 1 //< show/forward private field info to the IDE
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

注意:远程配置似乎不支持 -l 以上任何设置。


小智 0

你应该尝试设置

ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1)
Run Code Online (Sandbox Code Playgroud)

您还应该阅读有关 xdebugs 设置的说明:https ://xdebug.org/docs/all_settings