Можно ли отображать в одинарных кавычках переменную?
пример
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, если вы предпочитаете использовать строки, разделенные двойными кавычками:
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);