ทำไม PHP ถึงมีการแนะนำไม่ปิด tag? ท้ายไฟล์

เคยได้อ่านมาจากเว็บว่ามันจะมีผลให้มี Error ในบางกรณี
แต่แบบว่าอ่านแล้วก็ไม่ค่อยเข้าใจครับ ว่าทำไมถึง error และใช้ในกรณีไหนบ้าง

ใครมีประสบการณ์ตรงนี้บ้างครับ ช่วยอธิบายเป็นวิทยาทานด้วยครับ

ต้นฉบับที่ค้นเจอปัจจุบัน
http://stackoverflow.com/questions/4410704/why-would-one-omit-the-close-tag
http://www.sitepoint.com/should-you-close-your-php-code-tags/
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
เพราะว่า EDITOR บางตัว เวลาคุณเซฟไฟล์มันจะขึ้นบรรทัดใหม่ให้ หรือบางทีคุณอาจจะเผลอเว้นวรรคหรือขึ้นบรรทัดใหม่หลังปิดแท็ก PHP
เช่น เป็นแบบนี้

<?php
.....
?php>ร้องไห้ช่องว่าง/ขึ้นบรรทัดใหม่)

ซึ่งไอ้ช่องว่าง/บรรทัดใหม่ตรงนี้มันจะไปโผล่ใน output ด้วย

ซึ่งจะเกิดข้อเสียดังนี้
1. output เพี้ยน (เพราะมีช่องว่างเพิ่มขึ้นมา) ใน HTML อาจไม่มีปัญหาเท่าไหร่ แต่ถ้าคุณเอา PHP เรนเดอร์ไฟล์ไบนารี เช่น Excel หรือ PDF.
ช่องว่างหนึ่งช่องก็จะทำให้ไฟล์ Excel/PDF คุณเสียแล้ว
2. คุณไม่สามารถ set HTTP HEADER หลังจากมี Output BODY แล้ว   ดังนั้นช่องว่างที่ว่าจะทำให้ HEADER ที่คุณตั้งใจจะเซ็ทไม่ทำงาน
เช่น
<?php
require('badfile.php');   // ไฟล์นี้มีช่องว่างหลัง tag

header('Location: http://www.example.com/');  // บรรทัดจะ error, เพราะตั้ง Header หลังมี body output
3. เออเร่อแบบนี้หายากมาก เพราะเป็นตัวอักษรที่มองไม่เห็น


ดังนั้น เนื่องจาก PHP จะปิดแท็ก ?php> ให้เองเมื่อจบแต่ละไฟล์อยู่แล้ว จึงไม่ควรใส่แท็กปิดเอง
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่