PHP Instrumentos de cuerda


Ejemplo

Una cadena en PHP es una serie de caracteres de un solo byte (es decir, no hay soporte nativo de Unicode) que se puede especificar de cuatro maneras:

Cita única

Muestra las cosas casi completamente "como es". Las variables y la mayoría de las secuencias de escape no serán interpretadas. La excepción es que para mostrar una comilla literal, uno puede escapar con una barra diagonal invertida ', y para mostrar una barra diagonal inversa, se puede escapar con otra barra diagonal inversa \

$my_string = 'Nothing is parsed, except an escap\'d apostrophe or backslash. $foo\n';
var_dump($my_string);

/*
string(68) "Nothing is parsed, except an escap'd apostrophe or backslash. $foo\n"
*/

Doble citado

A diferencia de una cadena entre comillas simples, se evaluarán los nombres de variables simples y las secuencias de escape en las cadenas. Se pueden usar llaves (como en el último ejemplo) para aislar nombres de variables complejas.

$variable1 = "Testing!";
$variable2 = [ "Testing?", [ "Failure", "Success" ] ];
$my_string = "Variables and escape characters are parsed:\n\n";
$my_string .= "$variable1\n\n$variable2[0]\n\n";
$my_string .= "There are limits: $variable2[1][0]";
$my_string .= "But we can get around them by wrapping the whole variable in braces: {$variable2[1][1]}";
var_dump($my_string);

/*
string(98) "Variables and escape characters are parsed:

Testing!

Testing?

There are limits: Array[0]"

But we can get around them by wrapping the whole variable in braces: Success

*/

Heredoc

En una cadena heredoc, los nombres de variable y las secuencias de escape se analizan de manera similar a las cadenas entre comillas dobles, aunque las llaves no están disponibles para los nombres de variable complejos. El inicio de la cadena está delimitado por el identifier <<< , y el final por el identifier , donde identifier es cualquier nombre PHP válido. El identificador final debe aparecer en una línea por sí mismo. No se permite ningún espacio en blanco antes o después del identificador, aunque como cualquier línea en PHP, también debe terminar con un punto y coma.

$variable1 = "Including text blocks is easier";
$my_string = <<< EOF
Everything is parsed in the same fashion as a double-quoted string,
but there are advantages. $variable1; database queries and HTML output
can benefit from this formatting.
Once we hit a line containing nothing but the identifier, the string ends.
EOF;
var_dump($my_string);

/*
string(268) "Everything is parsed in the same fashion as a double-quoted string,
but there are advantages. Including text blocks is easier; database queries and HTML output
can benefit from this formatting.
Once we hit a line containing nothing but the identifier, the string ends."
*/

Ahoradoc

Una cadena nowdoc es como la versión de heredoc entre comillas simples, aunque ni siquiera se evalúan las secuencias de escape más básicas. El identificador al principio de la cadena se incluye entre comillas simples.

PHP 5.x 5.3
$my_string = <<< 'EOF'
A similar syntax to heredoc but, similar to single quoted strings,
nothing is parsed (not even escaped apostrophes \' and backslashes \\.)
EOF;
var_dump($my_string);

/*
string(116) "A similar syntax to heredoc but, similar to single quoted strings,
nothing is parsed (not even escaped apostrophes \' and backslashes \\.)"
*/