XDebug и VIM.Просмотр значений массива - PullRequest
6 голосов
/ 04 апреля 2011

Есть ли способ просмотреть данные внутри массива?

В настоящее время я могу видеть только $data[0] = (array), не зная, что находится внутри массива.

Я могу значения внутри обычногопеременные отлично.

Есть ли способ увидеть внутри массивов?Может быть, команда, о которой я не знаю?

Редактировать:

Я обнаружил, что могу использовать командные клавиши ,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 голосов
/ 08 августа 2011

Отредактируйте файл debugger.vim (~ / .vim / plugin / debugger.vim) и найдите строку, аналогичную

let g:debuggerMaxDepth = 1

увеличить глубину вариабелирования до разумного значения (5 должно хватить) сохранить и перезапустить vim.

4 голосов
/ 26 января 2012

Кроме того, вы можете заключить свое выражение в var_export(<expr>, true), и оно покажет вам полный объект.

0 голосов
/ 05 февраля 2015

Никогда не получал так, как я хотел, чтобы это работало. Вместо этого я нашел что-то лучше.

Использование Vundle Я установил отладчик VIM для xdebug ниже:

https://github.com/joonty/vdebug

Я выложу скриншот всякий раз, когда у меня будет шанс.

Работает как шарм.

0 голосов
/ 05 февраля 2015

Вы можете ввести команду vim ,e в сеансе xdebug.

Оттуда вы можете оценить любую строку php, которую вы хотите; например

print_r($data);

и отправьте его с помощью Введите

Примечание. Это приведет к выводу в стандартный вывод php-cli или, возможно, в выходной буфер, если вы находитесь внутри блока ob_start; Или, если вы осуществляете доступ из браузера, он может не выводиться до тех пор, пока не будет завершен весь запрос php. Возможно, вам удастся сбросить частичный буфер вывода в браузер, но вам придется поискать его в Google самостоятельно.


Я отправил это как ответ, даже если он был опубликован в вопросе ОП, потому что я не читаю вопрос ОП, если я ищу ответ, и я хочу убедиться, что люди могут его найти! Если ОП публикует свой ответ как ответ и пингует меня, я был бы рад удалить его.

...