Matt
Matt

Reputation: 22901

Print newline in PHP in single quotes

I try to use single quotes as much as possible and I've noticed that I can't use \n in single quotes. I know I can just enter a newline literally by pressing return, but that screws up the indentation of my code.

Is there some ASCII character or something that I can type that will produce newline when I'm using single quotes?

Upvotes: 140

Views: 326110

Answers (12)

Zaid Pathan
Zaid Pathan

Reputation: 16820

This worked well for me:

print_r('Hello world'.PHP_EOL);

Upvotes: 3

NewSites
NewSites

Reputation: 1739

I wonder why no one added the alternative of using the function chr():

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

or, more efficient if you're going to repeat it a million times:

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

This avoids the silly-looking notation of concatenating a single- and double-quoted string.

Upvotes: 12

Cisco Test
Cisco Test

Reputation: 51

You can use this:

echo 'Hello World' . "\n";

Upvotes: 4

Braham Youssef
Braham Youssef

Reputation: 487

in case you have a variable :

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

Upvotes: 0

leepowers
leepowers

Reputation: 38298

FYI it is possible to get newlines into strings without double quotes:

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

Which may be useful If your irrational fear of double quotes knows no bounds. Though I fear this cure may be worse than the disease.

Upvotes: 23

Cups
Cups

Reputation: 6896

echo 'hollow world' . PHP_EOL;

Use the constant PHP_EOL then it is OS independent too.

Upvotes: 128

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 798536

No, because single-quotes even inhibit hex code replacement.

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

Upvotes: 163

linuxdev
linuxdev

Reputation: 89

There IS a difference on using single VS double quotes in PHP

e.g: 1. echo '$var\n'; 2. echo "$var\n";

  • in 1, PHP will print literally: $var\n
  • in 2, PHP will have to search the location in memory for $var, and return the value in that location, also, it will have to parse the \n as a new line character and print that result

We're in the range of millionths of a second, but there IS a difference in performance. I would recommend you to use single quotes whenever possible, even knowing you won't be able to perceive this performance increase. But I'm a paranoid developer when it comes to performance.

Upvotes: 8

Alana Storm
Alana Storm

Reputation: 166046

The only escape sequence you can use in single quotes is for the single quote itself.

$foo = 'That\'s great';

The only way you could insert a new line into a string created with single quotes is to insert a literal newline

$bar = 'That\'s
cheating';

Upvotes: 9

Your Common Sense
Your Common Sense

Reputation: 157839

No, according to documentation, PHP recognize no special symbol in single quotes. And there is no single reason to use single quotes as much as possible

Upvotes: 0

Duniyadnd
Duniyadnd

Reputation: 4043

You may want to consider using <<<

e.g.

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

More info at: http://php.net/manual/en/language.types.string.php

Btw - Some Coding environments don't know how to handle the above syntax.

Upvotes: 3

Anthony Forloney
Anthony Forloney

Reputation: 91776

If you are echoing to a browser, you can use <br/> with your statement:

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

Upvotes: 31

Related Questions