var_dump() 和 print_r() 输出不同的值

var_dump() and print_r() output different values

我运行这个代码:

<?php
     $test = $_SERVER['HTTP_HOST'];
     var_dump($test);
     print_r($test);
     die();

我得到这个输出:

我运行这个代码:

<?php
     $test = $_SERVER['HTTP_HOST'];
     print_r($test);
     var_dump($test);
     die();

我得到这个输出:

为什么 print_r()var_dump() 不能就案例 1 中 $test 的值达成一致?

有关我如何到达这里的背景信息。我正在 运行 宁一个 laravel/homestead 虚拟机框,我正在使用 Browsersync。 Browsersync 创建了一个我连接的代理 (localhost:3000),它指向 laravel/homestead 虚拟机 (192.168.10.10)。当请求通过代理时,代理会更改 Host header 的值。

这是一个 Xdebug 错误。

解决方案:disable xdebug.

禁用 xdebug 的输出: