php 終了タグを書くことによって引き起こされること

phpではファイル末尾の終了タグ(?>)は省略することが推奨されています。
規約コードによってはこれを厳格に禁止しているものもあるそうです。
その理由は、終了タグの後ろに意図しないスペースや改行が入ることによって引き起こされる不具合を避けるためです。
この不具合はデザインが崩れるといったものだけでなく、もっと致命的なものを含みます。
次のエラーがよく取り上げられているので紹介します。

[redirect.php]

<?php
include "url.php";
// $url にリダイレクトする
header("Location: " . $url);
?>

[url.php]

<?php
$url = "https://www.google.com/";
?>
  <-改行

このとき redirect.phpを読み込むとphpエラーが起こり、ページは動かなくなります。
header関数はHTMLの出力がされていないときにのみ有効です。url.phpを読み込んだ際の終了タグの後ろの改行が読み込まれHTMLとして出力された結果、header関数がエラーを引き起こしてしまいました。

このようにphpファイルの終了タグを書くことで予期せぬエラーが起こる可能性があります。終了タグは書かなくても正常に動くので、書かないで統一することが望ましいです。