【问题标题】:Netbeans & Xdebug Problem: private variables in class methods not visible?Netbeans & Xdebug 问题:类方法中的私有变量不可见?
【发布时间】:2011-02-09 08:18:27
【问题描述】:

当我使用 Netbeans IDE 6.9.1 和 Xdebug 2.0.5 调试 PHP 项目时,在以下示例中的类方法(如 $myVar)范围内声明的变量在变量窗口中不可见:

class Test
{
  public function test($myVar)
  {
     return $myVar=1+$myVar;
  }

}

虽然 Object-Variables 和 SuperGlobals 是可见的。

这是一个非常烦人的行为,因为这些变量的值通常是发现错误的重要提示。

有人面临同样的问题吗?

这是 XDebug 的正常行为还是我必须更改配置?

感谢任何帮助或提示。

【问题讨论】:

    标签: php netbeans xdebug


    【解决方案1】:

    您可以在工具、选项、PHP 中打开手表/气球评估。但是当您在大型项目中执行此操作时,xdebug 往往会变得不稳定。

    【讨论】:

    • 我试过了,但它也不适用于类方法中的局部变量。
    • 今天尝试使用 xdebug 2.1.3 解决类似问题,它解决了我的问题,而且它更加稳定(至少在 php 5.3.5 ubuntu 11.04 上)。在这个版本中手表可以正常工作
    【解决方案2】:

    找到这个link 来解决我的问题:

    基本上这是 XDebug 2.0.5 和 PHP 5.3.2 的问题。

    要解决这个问题,只需升级到 XDebug 2.1.0

    【讨论】:

      【解决方案3】:

      我使用 Eclipse 并显示了本地变量,当然前提是您的调试位置在变量本地范围内。

      它也与 show_local_vars 和 collect_params 无关,因为我禁用了两者(由 phpinfo 确认)并且 Eclipse 仍然跟踪局部变量。

      所以...我没有遇到同样的问题,它似乎不是 XDebug 的“正常”行为,它似乎与您的 XDebug 设置无关。

      【讨论】:

        【解决方案4】:

        我不小心在我的 apache php.ini 中使用了带引号的值,并且只能检索超全局值,这让我相信调试器确实在工作。 显然你必须使用未加引号的值,因为现在我也可以看到局部变量了。

        所以不是

        zend_extension = "/usr/lib/php5/20090626/xdebug.so"
        

        使用

        zend_extension = /usr/lib/php5/20090626/xdebug.so
        

        Ubuntu 10.04 PHP 5.3.2 网豆 7.1.2 Xdebug 2.2.1

        【讨论】:

          猜你喜欢
          • 2011-05-30
          • 2012-09-24
          • 2021-04-03
          • 2011-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-07
          • 2018-03-20
          相关资源
          最近更新 更多