บางคนสาบานด้วยการปิดไฟล์ PHP ของพวกเขาด้วย?>
บางคนบอกว่ามันเหมาะที่จะทิ้งมันไว้
ฉันรู้ว่ามันไม่จำเป็นที่จะมีอยู่ที่นั่นฉันแค่สงสัยว่าข้อดีและข้อเสียของการทำเช่นนี้คืออะไรและการปฏิบัติที่ดีที่สุดคืออะไร
บางคนสาบานด้วยการปิดไฟล์ PHP ของพวกเขาด้วย?>
บางคนบอกว่ามันเหมาะที่จะทิ้งมันไว้
ฉันรู้ว่ามันไม่จำเป็นที่จะมีอยู่ที่นั่นฉันแค่สงสัยว่าข้อดีและข้อเสียของการทำเช่นนี้คืออะไรและการปฏิบัติที่ดีที่สุดคืออะไร
คำตอบ:
มันไม่ได้เป็นเรื่องของประสิทธิภาพมากนักการแยกวิเคราะห์ trailing ?>
นั้นเล็กน้อยและจะไม่สร้างความแตกต่างที่น่าสังเกตเลยเว้นแต่คุณจะใส่ไฟล์นับล้านต่อวินาที
IIRC, php.net ไม่แนะนำให้เพิ่ม?>
และเหตุผลมีดังนี้:
?>
ซึ่งจะถูกส่งออกไปยังลูกค้าซึ่งจะนำไปสู่ข้อผิดพลาด 'ส่วนหัวส่งแล้ว' ข้อผิดพลาด (สิ่งนี้เกิดขึ้นเมื่อไฟล์ที่รวมมีช่องว่างและคุณพยายามตั้งค่าส่วนหัวหลังจาก รวมถึงไฟล์นั้น)ไม่พวกเขาคิดผิด
?>
เป็นตัวเลือกใน PHP เมื่อสิ้นสุดไฟล์ และคุณจะพบเหตุผลที่ดีสำหรับสิ่งนี้ สิ่งที่สำคัญที่สุดคือพื้นที่ว่างท้ายไฟล์จะไม่ป้องกันคุณจากการส่งส่วนหัว นี่เป็นข้อผิดพลาดที่ยากที่จะสังเกตเห็นเพราะคุณสามารถหาได้จากทุกที่
วิธีปกติในการทำคือใส่แท็กปิดเมื่อ PHP ผสมกับ HTML และไม่วางไว้สำหรับไฟล์ PHP ล้วนๆ มันเป็นมาตรฐานการเข้ารหัสจากกรอบ Zendและอื่น ๆ อีกมากมาย
การเพิ่มประสิทธิภาพหมายถึงการที่รหัสทำงานได้เร็วขึ้น มันง่ายที่จะพิสูจน์ว่าผิด โปรไฟล์รหัสและคิดออกว่าพวกเขาจะบอกคุณพล่าม
ฉันคิดว่าแนะนำให้กับมือใหม่เพื่อหลีกเลี่ยงการเพิ่มเพื่อไม่ให้ส่งตัวอักษรขึ้นบรรทัดใหม่พิเศษโดยไม่ตั้งใจ เนื่องจากมันไม่จำเป็นที่จะต้องมีอย่างที่คุณพูดถึงฉันคิดว่าการใช้เหตุผลโดยทั่วไปนั้นดีกว่าที่จะทิ้งมันไว้เพื่อหลีกเลี่ยงข้อผิดพลาด
ฉันไม่คิดว่าจะมี "การเพิ่มประสิทธิภาพ" เกี่ยวข้องกับมัน
ฉันจะชี้ให้คุณที่นี่: /programming/4410704/php-closing-tagและที่นี่: /programming/3219383/why-do-some-scripts-omit-the -closing-PHP แท็ก
?>
ในไฟล์ที่มี PHP บริสุทธิ์
If a file is pure PHP code, it is preferable to omit the PHP closing tag at the end of the file. This prevents accidental whitespace or new lines being added after the PHP closing tag, which may cause unwanted effects because PHP will start output buffering when there is no intention from the programmer to send any output at that point in the script.