PHP Cordes


Exemple

Une chaîne en PHP est une série de caractères à un octet (c’est-à-dire qu’il n’existe pas de support Unicode natif) pouvant être spécifiée de quatre manières:

Simple coté

Affiche les choses presque complètement "telles quelles". Les variables et la plupart des séquences d'échappement ne seront pas interprétées. L'exception est que pour afficher un guillemet simple littéral, on peut y échapper avec une barre oblique inverse, et pour afficher une barre oblique inverse, on peut y échapper avec une autre barre oblique inverse \

$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"
*/

Double coté

Contrairement à une chaîne de guillemets simples, les noms de variables simples et les séquences d'échappement dans les chaînes seront évaluées. Les accolades (comme dans le dernier exemple) peuvent être utilisées pour isoler des noms de variables complexes.

$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

Dans une chaîne Heredoc, les noms de variables et les séquences d'échappement sont analysés de la même manière que les chaînes entre guillemets, bien que les accolades ne soient pas disponibles pour les noms de variables complexes. Le début de la chaîne est délimité par <<< identifier et la fin par identifier , où identifier est un nom PHP valide. L'identifiant de fin doit apparaître sur une ligne par lui-même. Aucun espace n’est autorisé avant ou après l’identifiant, même si, comme toute ligne de PHP, il doit également être terminé par un point-virgule.

$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."
*/

Nowdoc

Une chaîne nowdoc est comme la version citée de heredoc, même si les séquences d'échappement les plus élémentaires ne sont pas évaluées. L'identifiant au début de la chaîne est entouré de guillemets 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 \\.)"
*/