Pregunta sobre symbols, php, string – ¿Una forma alternativa de escribir literales de cadena en PHP? (sin 'o ")

12

¿Qué podría usar en PHP en lugar de los símbolos 'y' normales alrededor de algo?

Ejemplo:

echo("Hello World!")

¡Gracias!

Puedes agregar una comilla doble escapándola:"\"". Denys Séguret
... como, aunque la intención parece posiblemente equivocada, todavía tengo que ver las alternativas mencionadas. user166390
¿Qué quiere decir con "en lugar de lo normal" y "símbolos"? Sarfraz
Y no olvides que en HTML, será mejor que uses". Denys Séguret

Tu respuesta

1   la respuesta
28

', doble comillas", heredoc ynowdoc.

Leer elArtículo completo de php.net aquí..

Heredoc

Una tercera forma de delimitar cadenas es la sintaxis heredoc: <<<. Después de este operador, se proporciona un identificador, luego una nueva línea. La propia cadena sigue, y luego el mismo identificador de nuevo para cerrar la cita.

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
Ahoradoc

Nowdocs son para cadenas de comillas simples, lo que son heredocs para cadenas de comillas dobles. Un nowdoc se especifica de forma similar a un heredoc, pero no se realiza ningún análisis dentro de un nowdoc. La construcción es ideal para incrustar código PHP u otros grandes bloques de texto sin la necesidad de escapar. Comparte algunas características en común con la construcción SGML, ya que declara un bloque de texto que no es para análisis.

Un nowdoc se identifica con la misma secuencia <<< utilizada para heredocs, pero el identificador que sigue se incluye entre comillas simples, por ejemplo. <<< 'EOT'. Todas las reglas para los identificadores heredoc también se aplican a los identificadores nowdoc, especialmente aquellos relacionados con la apariencia del identificador de cierre.

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
Escapando

Si desea utilizar comillas simples o dobles literales dentro de cadenas entre comillas simples o dobles, tiene que escapar de ellas:

$str = '\''; // single quote
$str = "\""; // double quote

Como señaló Herbert, no tiene que evitar las comillas simples dentro de las cadenas entre comillas dobles y no tiene que evitar las comillas dobles dentro de una cadena entre comillas simples.

Si tiene que agregar citas a gran escala, use eltiras de adición () función:

$str = "Is your name O'reilly?";
echo addslashes($str); // Is your name O\'reilly?
Por supuesto, mi mal - actualizado mi respuesta. Jeroen
No tiene que escapar de las comillas simples entre comillas dobles o viceversa. p.ej."O'reilly" o'She said, "Me too"' Herbert
+1 para las referencias. Sin embargo, here-doc y now-doc se ven muy similares ;-) Podría valer la pena ampliar o notar las diferencias de interpolación. user166390
Se agregaron citas de la página php.net como explicación;) Jeroen

Preguntas relacionadas