2010-11-01 47 views
9

Acabo de leer el pensamiento de la doucmentation php para heredocs pero no vi ninguna forma de intentar el código correctamente. ¿Es esto posible en php?PHP: Uso de la sangría adecuada con Heredocs

En este momento estoy haciendo esto, pero esto es malo para la legibilidad.

<?php 

     if(something){ 
      ... 
      echo <<< END  
        This is a test. I am writing this 
        text out. 
END; 
     } # end of if statment 

me gustaría tener algo como esto:

<?php 

     if(something){ 
      ... 
      echo <<< END  
        This is a test. I am writing this 
        text out. 
      END; 
     } # end of if statment 

sé que fiesta tiene un método para hacer esto (aunque no puedo recordar lo que es), así que me preguntaba si era posible hacer en php. No lo creo, pero pensé que podría preguntar.

Respuesta

7

Es una limitación de PHP para formatear adecuadamente declaraciones heredoc. Es una limitación analizador. A medida que la documentación indica:.

es muy importante tener en cuenta que la línea con el identificador de cierre debe no contienen otros caracteres, excepto posiblemente un punto y coma (;) eso significa que especialmente t El identificador no puede contener , y es posible que no haya espacios o pestañas antes o después del punto y coma . También es importante darse cuenta de que el primer carácter antes del identificador de cierre debe ser una línea nueva según lo definido por el sistema operativo local . Esto es \ n en sistemas UNIX , incluido Mac OS X. El delimitador de cierre (posiblemente seguido de con un punto y coma) también debe seguirse por mediante una nueva línea.

Si se rompe esta regla y el identificador de cierre no es "limpia", no será considerado como un identificador de cierre , y PHP se seguir buscando uno. Si no se encuentra un identificador de cierre antes de al final del archivo actual, se producirá un error de análisis en la última línea.

Se desconoce si esto se va a resolver en el futuro de PHP.

2

yo sepa, eso no es posible, hay que poner el cierre identificador heredoc sin espacios/fichas/muesca :(

Cuestiones relacionadas