web-dev-qa-db-fra.com

Imprimer nouvelle ligne dans PHP entre guillemets simples

J'essaie d'utiliser autant que possible les guillemets simples et j'ai remarqué que je ne pouvais pas utiliser\n entre guillemets simples. Je sais que je peux simplement entrer une nouvelle ligne en appuyant sur la touche Entrée, mais cela gâche l'indentation de mon code.

Existe-t-il un caractère ASCII ou quelque chose que je puisse taper qui produira une nouvelle ligne lorsque j'utilise des guillemets simples?

112
Matt

Non, car les guillemets simples empêchent même le remplacement du code hexadécimal.

echo 'Hello, world!' . "\xA";
127
echo 'hollow world' . PHP_EOL;

Utilisez la constante PHP_EOL, elle est également indépendante du système d'exploitation.

93
Cups

Si vous êtes echo dans un navigateur, vous pouvez utiliser <br/> avec votre déclaration:

echo 'Will print a newline<br/>';
echo 'But this wont!';
22
Anthony Forloney

Pour votre information, il est possible d’obtenir des nouvelles lignes dans des chaînes sans guillemets:

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

Ce qui peut être utile si votre peur irrationnelle des guillemets doubles ne connaît pas de limites. Bien que je craigne que cette cure puisse être pire que la maladie. 

21
leepowers

Il y a IS une différence dans l'utilisation de guillemets simples VS en PHP

par exemple: 1. echo '$var\n'; 2. echo "$var\n";

  • dans 1, PHP imprimera littéralement: $var\n
  • dans 2, PHP devra rechercher l'emplacement dans la mémoire pour $var et renvoyer la valeur à cet emplacement. De plus, il devra analyser le\n comme un nouveau caractère de ligne et imprimer ce résultat.

Nous sommes dans la gamme du millionième de seconde, mais il y a IS une différence de performance. Je vous recommanderais d'utiliser des guillemets simples chaque fois que possible, même en sachant que vous ne serez pas en mesure de percevoir cette augmentation des performances. Mais je suis un développeur paranoïaque en matière de performance.

8
linuxdev

La seule séquence d'échappement que vous pouvez utiliser entre guillemets simples concerne le guillemet simple lui-même.

$foo = 'That\'s great';

La seule façon d'insérer une nouvelle ligne dans une chaîne créée avec des guillemets simples consiste à insérer un retour à la ligne littéral.

$bar = 'That\'s
cheating';
6
Alan Storm

Vous voudrez peut-être envisager d'utiliser <<<

par exemple. 

<<<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

Plus d'infos sur: http://php.net/manual/en/language.types.string.php

Btw - Certains environnements de codage ne savent pas comment gérer la syntaxe ci-dessus.

3
Duniyadnd

Je me demande pourquoi personne n'a ajouté l'option d'utiliser la fonction chr():

echo 'Hello World!' . chr(10);

ou plus efficace si vous allez le répéter un million de fois:

define('C_NewLine', chr(10));
...
echo 'Hello World!' . C_NewLine;

Cela évite la notation idiote de concaténer une chaîne à une et deux guillemets.

1
NewSites

Vous pouvez utiliser ceci:

echo 'Hello World' . "\n";
0
Cisco Test

si vous avez une variable: 

$your_var = 'declare your var';
echo 'i want to show my var here'.$your_var.'<br>';
0
Braham Youssef

Non, selon documentation , PHP ne reconnaît aucun symbole spécial entre guillemets simples. Et il n'y a pas une seule raison d'utiliser autant que possible des guillemets simples 

0
Your Common Sense