I've come across a tutorial (reputable one if I may add) where the closing php tag ?>
was omitted. This reminded me of a previous tutorial where the author said it's actually better not to close the tag, but didn't explain why. I'm a little surprised, I thought it was better practice to close the tag. Why is it better not to close it and is it all the time or in special cases only.
Because any whitespace after the final closing tag can cause the script to fail silently, or cause unwanted output to be sent to the browser. Some frameworks such as Zend Framework have incorporated omitting the final closing tag as a recommended practice to application developers using the ZF to help avoid such situations, and as a requirement as per their coding standards:
For files that contain only PHP code, the closing tag ("?>") is never permitted. It is not required by PHP, and omitting it´ prevents the accidental injection of trailing white space into the response.
That said, omitting closing tags is very much a workaround for a problem for which the root cause has not yet been tackled. This blog post asserts the very same.
Well, if you have an include file like config.php and you do not want it to output any characters because it's not meant to or you don't want to trigger "headers already sent" you can leave the closing tag off to make sure no whitespace is sent to the browser. You will find that files that are pure PHP and do not contain any content to be outputted, will generally not include a closing tag.
The bottom line is you don't want to prematurly inject content before any headers are set. This is talked about in depth here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With