Можно ли эхо в одиночных кавычках с переменной?
пример
echo 'I love my $variable.';
Мне нужно сделать это, потому что у меня есть много HTML для эха.
Вы должны либо использовать:
echo 'I love my ' . $variable . '.';
Этот метод добавляет переменную в строку.
Или вы можете использовать:
echo "I love my $variable.";
Обратите внимание на двойные кавычки, используемые здесь!
Если есть много текста, посмотрите на синтаксис Heredoc.
$var = <<<EOT <div style="">Some 'text' {$variable}</div> EOT;
В документации говорится:
Примечание. В отличие от синтаксисов с двойными кавычками и heredoc , переменные и escape-последовательности для специальных символов не будут расширяться, если они встречаются в одиночных кавычках.
Так что ответ – нет, не так.
Решение прост:
Не echo
HTML.
До тех пор, пока вы не создаете, как частичные представления или материал † , нет причин для эха HTML. Вместо этого вставьте PHP в HTML:
<div class="foo"> <span><?php echo $value; ?></span> </div>
Преимущества:
†: В этом случае heredoc
[docs] является наименее худшей альтернативой.
Нет. Переменные (и специальные символы) расширяются только в строках, разделенных двойными кавычками. Если вы хотите включить переменную в строку с разделителями одной кавычки, вы должны ее конкатенировать:
echo 'I love my '.$variable.'.';
Вы также можете избежать двойных кавычек вашего HTML, если вы предпочитаете использовать строки, ограниченные кавычками doble:
echo "<a href=\"$url\">$text</a>";
Дополнительную информацию см. В руководстве по PHP для строк , особенно в части синтаксического анализа строк .
№ '
не будет анализировать переменные. использование
echo 'I love my '.$variable.'.';
или
echo "I love my {$variable}. And I have \" some characters escaped";
не внутри строки, но вы можете выйти из строки и объединить переменную в.
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;
Взято из php.net: «Примечание: в отличие от синтаксиса с двойным кавычкой и heredoc, переменные и escape-последовательности для специальных символов не будут расширяться, когда они встречаются в одинарных кавычках».
Так что ответ – нет, вы не можете. Но вы можете сделать это так:
echo 'I love my' . $variable . '.';
Таким образом, это будет более чистым.
Помимо решений, упомянутых другими пользователями, таких как конкатенация строк, вы можете использовать заполнители следующим образом;
Обратите внимание, что% s для строки.
$variable = 'what ever'; printf('The $variable is %s', $variable);
используйте escape-кавычку escape, чтобы окружить текстовую строку следующим образом:
variable='my dog' echo \''I love ' $variable\'
=> «Я люблю свою собаку»
Или простой способ:
awk "\$1 < $variable"