Да, это имеет значение.Посмотрите на это:
<?php
$uselessvar = 1;
?>
<?php
header('Location: /'); // This will not work
?>
<?php
$uselessvar = 1;
header('Location: /'); // This will work
?>
В первом примере есть новая строка между первым закрывающим тегом ?>
и вторым открывающим тегом <?php
.Эта новая строка обрабатывается как вывод и отправляется клиенту.header
Функция не может работать, если какой-либо вывод отправляется клиенту до его вызова.Вот почему первый пример не будет работать там, где будет работать второй.
В более общем смысле, закрывающий тег ?>
лучше использовать только там, где он вам нужен, чтобы избежать таких ошибок.Например, вам не нужно ставить закрывающий тег ?>
в конце php-файла.Иногда мы видим файл, заканчивающийся закрывающим тегом, а затем новой пустой строкой.Эта новая пустая строка имеет тот же эффект, что и выше, и может вызвать сбой / изменение любого сценария.