2010-03-28 9 views
105

Intento utilizar comillas simples tanto como sea posible y he notado que no puedo usar \ n en comillas simples. Sé que puedo ingresar una nueva línea literalmente presionando return, pero eso arruina la sangría de mi código.Imprimir nueva línea en PHP en comillas simples

¿Hay algún carácter ASCII o algo que pueda escribir que produzca nueva línea cuando estoy usando comillas simples?

+0

Si alguien está interesado en una solución que funcione tanto para el navegador como para la terminal (cli, línea de comandos): http://stackoverflow.com/a/9665253/1923625 –

Respuesta

119

No, porque las comillas simples incluso inhiben la sustitución del código hexadecimal.

echo 'Hello, world!' . "\xA"; 
+1

Ah ok ... Esperaba que no tuviera recurrir a eso ... ¡Gracias! – Matt

+0

yessir. Él respondió en menos de 10 minutos. Tuve que esperar hasta entonces para aceptar, luego me olvidé de eso jaja. – Matt

+1

¿Hay alguna alternativa a esto? Necesito usarlo en un preg_replace que no puedo usar comillas dobles. –

21

Si usted es echo ing a un navegador, puede utilizar <br/> con su declaración:

echo 'Will print a newline<br/>'; 
echo 'But this wont!'; 
+2

Desafortunadamente es más para propósitos de terminal ... gracias por su respuesta. – Matt

+0

No hay problema, buena suerte. –

+0

perrrrrrfect !!! – SpaceDog

3

es posible que desee considerar el uso de < < <

por ejemplo,

<<<VARIABLE 
this is some 
random text 
that I'm typing 
here and I will end it with the 
same word I started it with 
VARIABLE 

Más información en: http://php.net/manual/en/language.types.string.php

BTW - Algunos entornos de codificación no saben cómo manejar la sintaxis anterior.

+1

Ah sí ... pero aún ODIO el hecho de que VARIABLE al final rompe toda sangría en su código ... He encontrado tantos errores (estúpidos) con la sintaxis de HEREDOC – Matt

0

No, de acuerdo con documentation, PHP no reconoce ningún símbolo especial entre comillas simples. Y no hay una sola razón para usar comillas simples tanto como sea posible

+0

Hay un ligero aumento en el rendimiento al usar comillas simples . Además, parece una buena práctica definir explícitamente cuándo quieres que se reemplacen las variables. –

+3

@Jackson no hay ** aumento de rendimiento **. Por cualquier medio. Olvida estos rumores infantiles. Y no, no hables de variables, sino de secuencias especiales. Si desea expandir una secuencia, una variable o una nueva línea, use comillas dobles, ** en función de su propósito **. Y OP se niega a usarlo en su propósito es una tontería. –

5

La única secuencia de escape que puede usar entre comillas simples es para la comilla simple misma.

$foo = 'That\'s great'; 

La única forma en que podría insertar una nueva línea en una cadena creada con comillas simples es insertar una nueva línea literal

$bar = 'That\'s 
cheating'; 
21

FYI es posible obtener nuevas líneas en cadenas sin comillas dobles:

printf('Please%1$sgive%1$sme%1$snewlines%1$s', PHP_EOL); 

Que puede ser útil Si su miedo irracional a las comillas dobles no conoce límites. Aunque me temo que esta cura puede ser peor que la enfermedad.

+0

No es un miedo ... obtienes un mejor rendimiento cuando usas comillas simples, así que trato de usarlas más a menudo, entonces no ... pero ya, esta no es realmente una gran solución para este problema, es más problemático que su valor. Gracias. – Matt

+4

No lo he probado, pero apostaría que el uso de comillas dobles es más rápido que usar 'printf' o cadenas de cadenas en general. –

+0

No siempre es irracional, las comillas dobles pueden ser problemáticas, dependiendo de lo que desee hacer. 'echo 'Por ejemplo, quiero que escupir el código php. \ Necho $ this-> stuff;';' –

88
echo 'hollow world' . PHP_EOL; 

Utilice la constante PHP_EOL y, a continuación, es independiente del sistema operativo.

+1

PHP_EOL No funciona. PHP 5.5.xx –

+2

funciona en PHP 5.6.9 –

+2

Normalmente no debe usar PHP_EOL ya que esto hace que su código dependa del sistema en el que se ejecuta. P.ej. su servidor Linux se está comunicando con otro servidor y luego su servidor es reemplazado por Windows ... No es bueno. – Andreas

8

hay una diferencia en el uso de comillas simples dobles VS en PHP

por ejemplo: 1. echo '$var\n'; 2. echo "$var\n";

  • en 1, PHP imprimirá literalmente: $var\n
  • en 2 , PHP tendrá que buscar la ubicación en la memoria para $var, y devolver el valor en esa ubicación, también tendrá que analizar \ n como un nuevo carácter de línea e imprimir ese resultado

Estamos en el rango de millonésimas de segundo, pero HAY una diferencia en el rendimiento.Le recomendaría que use comillas simples siempre que sea posible, incluso sabiendo que no podrá percibir este aumento en el rendimiento. Pero soy un desarrollador paranoico cuando se trata de rendimiento.

+0

Te felicito por intentar buscar la mejor manera de hacerlo en lugar de utilizar la solución de comillas dobles A.K.A La solución de desarrollador lazy. – linuxdev

+0

La mejor manera que conozco de hacer lo que desea: echo 'foo', "\ n"; – linuxdev

+2

La forma más rápida de hacerlo es 'echo $ var +" \ n ";' – Hengjie

Cuestiones relacionadas