Why are php tags not closed in drupal?

This is the code in index.php , only <?php , but no ?> , Is this my first time to see such code, for any reason?

 <?php // $Id: index.php,v 1.94 2007/12/26 08:46:48 dries Exp $ /** * @file * The PHP page that serves all page requests on a Drupal installation. * * The routines here dispatch control to the appropriate handler, which then * prints the appropriate page. * * All Drupal code is released under the GNU General Public License. * See COPYRIGHT.txt and LICENSE.txt. */ require_once './includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); $return = menu_execute_active_handler(); // Menu status constants are integers; page content is a string. if (is_int($return)) { switch ($return) { case MENU_NOT_FOUND: drupal_not_found(); break; case MENU_ACCESS_DENIED: drupal_access_denied(); break; case MENU_SITE_OFFLINE: drupal_site_offline(); break; } } elseif (isset($return)) { // Print any value (including an empty string) except NULL or undefined: print theme('page', $return); } drupal_page_footer(); 
+6
php drupal
source share
2 answers

Omitting the closing tag prevents accidental injection of a trailing space in response.

It is a common coding practice in some Framework, such as Zend .

+12
source share

The omission of closing PHP tags is part of the Drupal coding standards .

Since Drupal 4.7 ,? > intentionally omitted at the end of code files. This includes modules and files. The reasons for this can be summarized as:

  • Deleting this file eliminates the possibility of unwanted spaces at the end of files that can cause errors already sent by the header, XHTML / XML validation problems, and other problems.
  • a closing delimiter at the end of the file is optional .
  • PHP.net itself removes the final separator from the end of its files (example: prepend.inc ), so this can be seen as "best practice."
+10
source share

All Articles