Вывести новую строку в PHP в одинарных кавычках - PullRequest
114 голосов
/ 28 марта 2010

Я стараюсь использовать как можно больше одинарных кавычек, и я заметил, что не могу использовать \ n в одинарных кавычках. Я знаю, что могу просто ввести новую строку буквально нажатием клавиши возврата, но это испортило отступ моего кода.

Есть ли какой-нибудь символ ASCII или что-то такое, что я могу напечатать, чтобы при появлении одинарных кавычек появился символ новой строки?

Ответы [ 11 ]

131 голосов
/ 28 марта 2010

Нет, потому что одинарные кавычки даже запрещают замену шестнадцатеричного кода.

echo 'Hello, world!' . "\xA";
94 голосов
/ 28 марта 2010
echo 'hollow world' . PHP_EOL;

Используйте константу PHP_EOL, тогда она также не зависит от ОС.

24 голосов
/ 28 марта 2010

Если вы echo заходите в браузер, вы можете использовать <br/> со своим заявлением:

echo 'Will print a newline<br/>';
echo 'But this wont!';
22 голосов
/ 28 марта 2010

К вашему сведению, можно переводить строки в двойные кавычки:

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

Что может быть полезно, если ваш иррациональный страх двойных кавычек не знает границ. Хотя я боюсь, что это лекарство может быть хуже, чем болезнь.

8 голосов
/ 09 октября 2011

Существует различие в использовании одинарных VS двойных кавычек в PHP

например: 1. echo '$var\n'; 2. echo "$var\n";

  • в 1, PHP напечатает буквально: $var\n
  • в 2, PHP должен будет искать местоположение в памяти для $var и возвращать значение в этом местоположении, а также он должен будет проанализировать \ n как символ новой строки и вывести этот результат

Мы находимся в диапазоне миллионных долей секунды, но есть разница в производительности. Я бы порекомендовал вам использовать одинарные кавычки, когда это возможно, даже зная, что вы не сможете ощутить это повышение производительности. Но я параноик, когда дело доходит до производительности.

6 голосов
/ 28 марта 2010

Единственная escape-последовательность, которую вы можете использовать в одинарных кавычках, - это сама одиночная кавычка.

$foo = 'That\'s great';

Единственный способ вставить новую строку в строку, созданную одинарными кавычками, - вставить буквальную новую строку

$bar = 'That\'s
cheating';
3 голосов
/ 28 марта 2010

Вы можете рассмотреть возможность использования <<< </p>

например.

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

Больше информации по адресу: http://php.net/manual/en/language.types.string.php

Кстати - некоторые среды кодирования не знают, как обрабатывать вышеуказанный синтаксис.

1 голос
/ 17 сентября 2018

Интересно, почему никто не добавил альтернативу использования функции chr():

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

или, более эффективно, если вы собираетесь повторить это миллион раз:

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

Это позволяет избежать глупого представления о конкатенации строки в одинарных и двойных кавычках.

0 голосов
/ 30 июля 2018

Вы можете использовать это:

echo 'Hello World' . "\n";
0 голосов
/ 12 марта 2018

, если у вас есть переменная:

$your_var = 'declare your var';
echo 'i want to show my var here'.$your_var.'<br>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...