更新 - 致力于让WAMP与phpDeveloper/Xdebug
合作。我仍然想要NetBeans - 我只是想比较一下,看看我是否得到了一些见解。
我正在使用 NetBeans 6.9 与 LAMP 和 Xdebug 来处理PHP代码。 Variables显示效果很好,但最近效果不佳。例如,下面的$authorized
应该在代码下面的变量窗格中可见,并且应该公开它的值。但它没有显示,也没有显示它的价值,并且对代码的模仿并没有帮助。 ($this
对象正在显示,并且它会继续显示,但$authorized
不在那里,如果是,则没有意义。)
此行为是一致的。也许这是代码复杂性的一个功能?还是猖獗的对象使用?它似乎是在我拿起CodeIgniter时开始的。
当然,当我最需要它们时隐藏变量......或者对于穷人来说似乎是这样。我错过了什么?
NetBeans debugger http://themanthursday.com/wiki/Debugger_Display.png
下面有一个更好的例子。当我逐步完成此代码时,Variables只显示 Superglobals 和 $ this ,就像在图片中一样。我看不到任何价值,甚至只是字符串。
(唠叨想:我敢打赌$ CI SuperObject与所有这些有关...)
class Product_documents {
function getProductImage_all($id)
//Return an array of all documents for this product
{
$imgPath = $this->_getProductImage_folder($id);
$arrayPossibleFilenames = $this->_getProductImage_possible_files($id);
foreach ($arrayPossibleFilenames as $imgFile) {
$imgPathFull = $imgPath.$imgFile;
$file_exists = get_file_info($imgPathFull);
if ($file_exists)
{
$arrayFilesPresent[] = $imgPathFull;
}
}
return $arrayFilesPresent;
}
}
答案 0 :(得分:9)
右键单击变量窗格。选择“过滤器”。你会发现这个秘密。
答案 1 :(得分:6)
来到这个网站,它有一个非常好的链接到Xdebug页面,通过编译“更新的”版本来完成升级Xdebug的过程:
http://icephoenix.us/php/xdebug-doesnt-show-local-variables-in-komodo-netbeans-or-eclipse-pdt/
对象/类内部的变量再次出现!呀!
没有手表,没有'这可能让Xdebug吓坏了'消息 - 只是好的变量,现在完全暴露了我的解决方案的失败......(哈哈)。
大卫
答案 2 :(得分:2)
我之前在Netbeans中看过这样的东西。我希望这只是一个涉及Netbean与XDebug交互的错误。我之前看到的一种可能的解决方法是为您看不到的变量添加“监视”。对于您的示例,您可以转到“手表”标签并输入$authorized
。它应该在设置后显示出来。
答案 3 :(得分:0)
我认为它归结为在CodeIgniter中实现为“超级对象”的单例模式。我从来没有重新启动过这个项目来测试Kamal的想法。在他发布后不久,我总结了单身是原因(我没有试图猜测Kamal是否有解决方案)。因此,我对this post的回复。
答案 4 :(得分:0)
(2015)在[xdebug]下的php.ini中,如果你想在调试模式中使用所有局部变量,请设置xdebug.show_local_vars = 1。
答案 5 :(得分:-1)
尝试将$ authorized初始化为bool false。
我已经看到Netbeans没有向我展示使用没有doctype的函数的返回值初始化的变量,但是它的命中或错过足以使模式无法生成。