Why does var_dump show filename and line number?

If you don't want the extra data produced by var_dump(), you can use var_export() which will show a stripped-down output.

Here is a test case:

$values = [
    0 => '',
    1 => 'foo',
    2 => null,
    3 => false,
    4 => true,
    5 => 0,
    6 => new stdClass
];

var_dump():

foreach ($values as $value) {
    echo var_dump($value) . PHP_EOL;
}

Output of plain old PHP:

string(0) ""
string(3) "foo"
NULL
bool(false)
bool(true)
int(0)
object(stdClass)#1 (0) {
}

Output of PHP XDEBUG:

/var/www/html/test.php:12:string '' (length=0)
/var/www/html/test.php:12:string 'foo' (length=3)
/var/www/html/test.php:12:null
/var/www/html/test.php:12:boolean false
/var/www/html/test.php:12:boolean true
/var/www/html/test.php:12:int 0
/var/www/html/test.php:12:
object(stdClass)[1]

var_export():

foreach ($values as $value) {
    echo var_export($value) . PHP_EOL;
}

Output of PHP (plain or with XDEBUG)

''
'foo'
NULL
false
true
0
(object) array(
)

You have xdebug enabled.

One of the new features relates to one of the first things that I added in the original Xdebug: making the var_dump() output "pretty". Xdebug replaces PHP's standard var_dump() function with its own version, as long as the xdebug.overload_var_dump setting is not set to 0


Xdebug 2.3 enhances the overloading of var_dump() with the inclusion of the file name and line number where var_dump() is called at. This has been a long standing feature request.

Here is my output without xdebug;

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

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

Tags:

Php

Var Dump