Почему в дампе var отображается имя файла и номер строки?


Совсем недавно var_dump() в PHP (в настоящее время используется 5.6.23) начал распечатывать имя файла, а также номер строки, прежде чем фактически сбросить мою переменную. Я не знаю о каких-либо серьезных изменениях на сервере, поэтому мне было интересно, почему это происходит, также ничего нельзя найти в Интернете или в PHP-документации (var_dump())

Странное поведение также происходит при использовании командной строки:

 > php -r 'var_dump("lol");'
 Command line code:1:
 string(3) "lol"

В то время как я просто привык к тому, что "строка(3) "lol""является напечатанный.

Это не демонстрационный стопор, но сломал пару моих модульных тестов, где мне нужно было сравнить некоторые выходные данные API, которые печатаются с помощью var_dump(). Сначала я подумал, что это может быть связано с xdebug, но не смог найти никакой директивы, которая, по-видимому, связана с этой проблемой.

Приветствуется любой намек на то, что является причиной этого.

Author: Select0r, 2016-07-14

1 answers

У вас включен xdebug.

Одна из новых функций связана с одной из первых вещей, которые я добавил в оригинальный Xdebug: сделать вывод var_dump() "красивым". Xdebug заменяет стандартную функцию PHP var_dump() своей собственной версией, если для параметра xdebug.overload_var_dump не установлено значение 0


Xdebug 2.3 увеличивает перегрузку var_dump() с включением имени файла и номера строки, в которой вызывается var_dump(). Это был давний запрос на функцию.

Вот мой вывод без xdebug;

>php -r "var_dump('lol')";
string(3) "lol"

Https://derickrethans.nl/xdebug-2.3-overload-vardump.html

 6
Author: Maksym Semenykhin, 2016-07-14 13:25:30