我一直认为PHP不允许在任何输出之后发送标头。我很惊讶地发现这不会在我的代码中引起任何错误:
<?php
echo 'z';
header('X-Foo: Bar');
echo 'y';
它所做的只是输出zy
和X-Foo: Bar
标头。这怎么可能?我没有使用输出缓冲。
默认情况下,服务器可以启用输出缓冲吗?还是PHP默认更改了缓冲输出的方式?我正在使用PHP 7.3.4。是的,我的所有错误,警告和通知都将设置为显示。
我正在使用Homestead服务器,也许这可以作为一些提示。
答案 0 :(得分:0)
这意味着在您的php配置中启用了指令output_buffering。
该值可以是Off
或0
(默认情况下,它是禁用的),或者可以是On
或任何大于0的整数,这意味着缓冲的限制(以字节为单位) )。