Можно ли отобразить переменную в одинарных кавычках? - PullRequest
10 голосов
/ 13 июля 2011

Могу ли я отображать в одинарных кавычках переменную?

пример

echo 'I love my $variable.';

Мне нужно сделать это, потому что у меня тоже есть много HTML-кода.

Ответы [ 11 ]

23 голосов
/ 13 июля 2011

Вы должны либо использовать:

echo 'I love my ' . $variable . '.';

Этот метод добавляет переменную к строке.

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

echo "I love my $variable.";

Обратите внимание на двойные кавычки используется здесь!

7 голосов
/ 13 июля 2011

Если текста много, взгляните на синтаксис Heredoc.

$var = <<<EOT
<div style="">Some 'text' {$variable}</div>
EOT;
3 голосов
/ 13 июля 2011

Документация гласит:

Примечание: В отличие от двойных кавычек и heredoc синтаксисов, переменные и escape-последовательности для специальных символов будут не расширяться, когда они встречаются в одиночных кавычках.

Итак, ответнет, не таким образом.

Решение простое:

Не echo HTML.

Пока вы несоздавая как частичные представления или прочее , нет смысла выводить HTML.Вместо этого встраивайте PHP в HTML:

<div class="foo">
    <span><?php echo $value; ?></span>
</div>

Преимущества:

  • Не нужно запоминать экранирование кавычек.
  • Проще поддерживать HTML-код.

†: в этом случае heredoc [документы] - наименее худшая альтернатива.

2 голосов
/ 13 июля 2011

Нет. Переменные (и специальные символы) раскрываются только в строках, разделенных двойными кавычками. Если вы хотите включить переменную в строку с одинарными кавычками, вам нужно вместо этого объединить ее:

echo 'I love my '.$variable.'.';

Вы также можете избежать двойных кавычек вашего HTML, если вы предпочитаете использовать строки, разделенные двойными кавычками:

echo "<a href=\"$url\">$text</a>";

См. Руководство по PHP для строк , особенно часть для анализа строк , для получения дополнительной информации.

0 голосов
/ 06 февраля 2019

Попробуйте это

<php echo 'I love my '. $variable . ' .'; ?>
0 голосов
/ 14 июля 2017

Помимо решений, упомянутых другими пользователями, таких как конкатенация строк, вы можете использовать заполнители следующим образом:

Обратите внимание, что% s для строки.

$variable = 'what ever'; 
printf('The $variable is %s', $variable);
0 голосов
/ 18 ноября 2015

используйте escape-кавычку, чтобы окружить текстовую строку:

variable='my dog'

echo \''I love ' $variable\'

=> 'Я люблю свою собаку'

0 голосов
/ 26 марта 2014

Или простым способом:

awk "\$1 < $variable"
0 голосов
/ 13 июля 2011

Взято с php.net: «Примечание. В отличие от синтаксиса с двойными кавычками и heredoc, переменные и escape-последовательности для специальных символов не будут раскрываться, если они встречаются в строках с одинарными кавычками.»

Итак, ответнет, ты не можешь.Но вы можете сделать это так:

echo 'I love my' . $variable . '.';

Так будет чище.

0 голосов
/ 13 июля 2011

не внутри строки, но вы можете выйти из строки и объединить переменную в.

echo 'I love my '.$variable.'.';

Другим вариантом будет просто избежать двойных кавычек.

echo "I love my \"$variable\".";

Или просто входите и выходите из php, чтобы выводить переменные (хотя и некрасиво).

I love my <?php echo $variable; ?>.
With short tags enabled, I love my <?=$variable?>.

Наконец, существует формат heredoc, который допускает как одинарные, так и двойные кавычки вместе с переменными.

echo <<<HTML
I love my $variable. '"...
HTML;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...