PDA

Ver la Versión Completa : ¿Por qué omitir el cierre "?>" en PHP?


Ñuño Martínez
16-05-2008, 14:21:26
Así de simple.

Y es que he actualizado la copia de Code Igniter que utilizamos en el trabajo y me he fijado que han eliminado de muchos de los archivos la última línea, esa que reza ?> y no es un error porque lo mencionan en la bitácora de cambios. En el manual de PHP (http://www.php.net/manual) leí en un comentario que lo recomendaban, pero nunca lo había visto "en funcionamiento".

¿Alguien sabe qué ventajas tiene, aparte de ahorrarse el tener que interpretar dicha línea?

roman
16-05-2008, 16:40:31
CodeIgniter (http://codeigniter.com/)

Bitácora de cambios (http://codeigniter.com/user_guide/changelog.html)

Digo, nada más para facilitar un poco la lectura ;)

// Saludos

roman
16-05-2008, 22:20:48
¡Vaya! Pues parece ser algo común. Por ejemplo

Propel (http://propel.phpdb.org/trac/ticket/29)

Zend Framework (http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html)

Aunque no termino de ver claro para qué. Esto es, entiendo que más que nada es para scripts que se incluyen en otras partes, de manera que posibles espacios en blanco después del ?> no causen problemas con el uso de headers. Pero en un script que sólo use código php, francamente veo muy bajas las probabilidades de meter accidentalmente esos espacios en blanco.

// Saludos

dec
16-05-2008, 22:32:25
Hola,

Yo es la primera vez que veo algo así... y, salvo para el caso de que se quieran incluir archivos "no PHP"... pero si no se entiende esto no se preocupe nadie: probablemente sea una tontería: no entiendo, digo, para qué sirve omitir la etiqueta de cierre de PHP, la verdad. Lo único que se me ocurre decir es que yo vengo utilizándola y no he visto que me fuera necesario no hacerlo todavía, que yo recuerde, vaya. ;)

Ñuño Martínez
19-05-2008, 15:40:07
Vamos, que no se sabe. Es que eso de usar algo y no saber para qué sirve ni cómo funciona como que no me va...

roman
19-05-2008, 17:27:24
no entiendo, digo, para qué sirve omitir la etiqueta de cierre de PHP, la verdad.

Yo lo que entiendo es esto:


archivo.php

<?php

bla, bla, bla y más bla
?>



... aquí varias líneas en blanco, vaya usted a saber por qué





<?php
// incluir este archivo causa que las líneas en blanco
// del otro archivo se manden al navegador
include('archivo.php');

// por tanto aquí ya no puedo mandar encabezados.
?>


Pero suena muy tonto. Sin embargo no deja de ser un poco desconcertante que incluso profesionales como Zend Framework lo hagan.

// Saludos

dec
19-05-2008, 19:41:13
Hola,

Uff... pareciera entonces como si fuera un "por si no hacemos algo bien"... ¿No? No sé. Yo de momento no he visto la necesidad. Incuso yo más bien lo entendía de otro modo, como si tuviera una utilidad realmente práctica, pero, acabo de despertar de una siesta (que necesitaba, por lo visto) y ahora mismo no doy pie con bola. En todo caso, lo que yo creo una posible necesidad, en un momento dado, no es algo que pueda generalizarse, como parece que se hace. En fin.... ;)