Я всегда думал, что PHP не позволяет отправлять заголовки после любого вывода. Я был удивлен, увидев, что это не вызывает ошибок в моем коде:
<?php
echo 'z';
header('X-Foo: Bar');
echo 'y';
Что он делает, так это выводит заголовки zy
и X-Foo: Bar
просто отлично. Как это возможно? Я не использую буферизацию вывода.
Может ли буферизация вывода быть включена сервером по умолчанию? Или, может быть, PHP изменил способ буферизации вывода по умолчанию? Я использую PHP 7.3.4. И да, все мои ошибки, предупреждения и уведомления настроены на отображение.
Я использую сервер Homestead, возможно, это послужит подсказкой.
Warning
в вашей версии. См. 3v4l.org/EGrXp. - person Always Sunny   schedule 29.05.2019php.ini
. OP упоминает Homestead - этот код находится в Laravel? - person ceejayoz   schedule 29.05.2019echo ini_get('output_buffering');
выводит4096
. Означает ли это, что Homestead включает его по умолчанию? - person Robo Robok   schedule 29.05.2019