XDebug和VIM。浏览数组值

6

有没有办法浏览数组中的数据?

目前我只能看到$data[0] = (array),无法知道数组内部的内容。

我可以正常查看普通变量中的值。

有没有一种方法可以查看数组内部?也许有我不知道的命令吗?

编辑:

我发现我可以使用命令键,e来评估数组或对象。

在我键入,e后,会出现一个/*{{{1*/ => eval:提示,然后我可以键入/*{{{1*/ => eval: $data[0]来查看值。

除了我得到以下输出格式:

/*{{{1*/ => eval: $data[0]

$command = 'eval';

EVAL_RESULT = (array) ;

EVAL_RESULT = (string) 'stringfromdata0-1' ;

EVAL_RESULT = (string) 'stringfromdata0-2' ;

EVAL_RESULT = (array) 'stringfromdata0-3' ;

这只完成了我想要的一半。有没有办法输出数组的键?它只显示值,但键被显示为“EVAL_RESULT”,而不是数组中对应的键名。

4个回答

5

编辑 debugger.vim 文件(~/.vim/plugin/debugger.vim),找到类似于以下行:

let g:debuggerMaxDepth = 1

将深度变量增加到合理的数量(5应该足够)

保存并重新启动vim。


嗨,你知道吗,你留下了一个未注册的账户,上面还有一个回答。如果你想要,你可以请求将这些账户合并。 - user456814
谢谢,是的,我该怎么做? - aminalid

4

此外,你可以将表达式包含在var_export(<expr>, true)中,它将显示完整的对象。


print_r(<expr>, true) 也可以用于显示完整的对象。 - rfc1484
这是一个好的提示,返回值而不是打印它,因为Vim会显示它! - ThorSummoner

0

在 xdebug 会话中,您可以输入 vim 命令 ,e

从那里,您可以评估任何您想要的 PHP 行;例如:

print_r($data);

并按下 Enter 提交。

注意:这将输出到您的 php-cli stdout,或者如果您在 ob_start 块内,则可能输出到输出缓冲区;或者如果您从浏览器访问,则可能要等到整个 php 请求完成才能输出。您可以将部分输出缓冲区刷新到浏览器中,但您需要自行搜索此内容。


尽管我知道这个回答是在原帖的问题中发布的,但我还是把它作为一个回答发布了,因为当我寻找答案时,我不会去阅读原帖的问题,而且我希望确保其他人能找到这个回答!如果原帖作者把他的答案作为一个回答发布并且通知我,我很乐意删除这个回答。


谢谢你提醒我这个问题。由于它从来没有像我期望的那样工作,我忘记了这个问题。但是,我刚刚发布了一个答案。 - Tek

0

从来没有按照我想要的方式让它工作。相反,我找到了一些更好的东西。

使用 Vundle 我安装了下面的 VIM 调试器:xdebug。

https://github.com/joonty/vdebug

我有机会的时候会发布一张截图。

不过它的工作效果非常好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接