it-roy-ru.com

Печать новой строки в PHP в одинарных кавычках

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

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

112
Matt

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

echo 'Hello, world!' . "\xA";
127
Ignacio Vazquez-Abrams
echo 'hollow world' . PHP_EOL;

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

93
Cups

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

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

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

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

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

21
leepowers

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

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

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

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

8
linuxdev

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

$foo = 'That\'s great';

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

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

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

например 

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

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

3
Duniyadnd

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

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

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

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

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

1
NewSites

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

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

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

0
Your Common Sense