Parse Error: syntax error, unexpected $end

En ocasiones puede darse el caso de que nuestro código este funcionando perfectamente, y sin embargo al actualizar la versión de PHP o al mover nuestra web a otra compañía de alojamiento web, deje de funcionan y nos muestre el siguiente error:

Parse Error: syntax error, unexpected $end

Es un error bastante común, porque es muy fácil reunir las condiciones para hacerlo saltar.

Básicamente suele deberse a uno de estos dos motivos:

  1. En alguna parte del código falta una llave de cierre (símbolo }, también llamado curly bracket).
  2. El PHP instalado no admite en su configuración el uso de etiquetas PHP en formato abreviado (“<?” en lugar de “<?php” ).

Por fortuna para nosotros ambos casos tienen fácil solución, aunque en el primer supuesto si el código a revista es muy extenso puede ser un auténtico quebradero de cabeza…
Así que como digo, si sospechamos que en nuestro caso el error es el primer supuesto, nos tocará revisar todo el código del archivo php que hace saltar el error (y de cualquiera que llamemos desde este mediante includes), para localizar la definición de clase que nos hemos olvidado de cerrar.

Por lo tanto es un problema que inevitablemente tenemos que solucionar “a mano” y con paciencia, no obstante si usamos un buen editor que nos resalte las distintas partes de código PHP con distintos colores, probablemente nos sea mucho más fácil de localizar el error.

Y en el segundo caso, cuando se trata del uso de las etiquetas abreviadas de PHP (short open tags), lo mejor para solucionar el error y dar máxima compatibilidad a nuestro código es sustituir cualquier etiqueta PHP en formado abreviado por su correspondiente en formato extendido, es decir:

Sustituir <? por <?php

Para hacerlo podemos usar sin problemas la opción “buscar y reemplazar” del editor que usemos, ya que no cabe duda de que cada vez que encuentre el primer formato, la acción a realizar será cambiarlo por el segundo (no puede haber nada en el código que se confunda con esto).

Aunque si hay demasiado código que modificar o como solución de emergencia, siempre que tengas acceso a modificar el archivo php.ini, puedes activar la compatibilidad con las etiquetas abrevidadas con la siguiente línea en tu php.ini (posiblemente ya exista, pero con valor off):

short_open_tag = On

Leave a Reply

Your email address will not be published. Required fields are marked *