Двойные кавычки —> «$ a» интерпретируют переменные.
одинарные кавычки —> '$ a' не делает. До сих пор
Мой вопрос:
"'$a'"
? Примечание : хотите знать детали сцены.
Подробное объяснение :
Из-за этого я столкнулся с серьезной проблемой, когда использовал ее в цикле foreach:
Следующий пример дал мне неправильное значение параметра. Например, значение, которое он отображает, это UX, если оригинал является разработчиком UX
echo "<option value=".$item['m_designation'].">".$item['m_designation']."</option>";
этот пример дал мне правильное значение параметра. Например, значение, которое он предоставляет, является разработчиком UX, если оригинал является разработчиком UX
echo '<option value="'.$item['m_designation'].'"> '.$item['m_designation'].' </option>';
Надеюсь, я поняла.
Обновить:
Я получил желаемый результат, но я не знаю логики, стоящей за ним. Я пробовал и делал это успешно, но я хотел знать, что происходит за сценой. Я думаю, что люди неправильно поняли мой вопрос.
Использование '
и "
для строк изменяется только в том случае, если они являются внешним контейнером всей строки – другая цитата внутри, которая просто рассматривается как простой символ без особого значения, поэтому "'$var'"
использует правила "
(разбор переменных), тогда как '"$var"'
буквально выводит "$var"
поскольку он использует правила '
(без синтаксического анализа переменных).
Резюме. Когда вы делаете "''"
или "\"\""
кавычки внутри строки не обрабатываются PHP и не рассматриваются как буквенные символы, содержимое таких кавычек будет иметь такое же поведение в этих кавычках или из них.
У вас будет строка, которая использует двойные кавычки как разделители и имеет одинарные кавычки в качестве данных. Разделители – это те, которые важны для определения того, как будет обрабатываться строка.
$a = 'test'; echo '$a';// prints $a echo "$a";// prints test echo "'$a'"//prints 'test'
двойные кавычки проверяют переменную php и эхо-строку с значением переменной php
пример echo "wow $a 123"; //prints wow test 123
echo "wow $a 123"; //prints wow test 123
одиночные кавычки печатают все в одинарных кавычках
пример echo 'foo $a 123';//prints foo $a 123
В вашей «неисправной» (первой) строке отсутствовали одинарные кавычки :
echo "<option value='".$item['m_designation']."'>".$item['m_designation']."</option>"; ^ ^
Ваша проблема в том, что вы путаете кавычки в своем HTML с кавычками в PHP.
$a = 1; $b = '"$a"'; echo $b; # => "$a" $a = 1; $b = "\"$a\""; echo $b; # => "1"
Я бы посоветовал вам просто никогда не использовать строковые литералы, поскольку (особенно в PHP) для них много неожиданных и странных краевых дел. Лучше всего заставить интерпретатора (который также работает только с двойными кавычками:
$a = 1; $b = "\"{$a}\""; $c = "{$a+2}"; echo $b; # => "1" echo $c; # => 3
Кажется, ваш вопрос больше направлен на выход PHP, созданный для форматирования HTML. Просто одиночные кавычки в PHP представляют буквальное значение:
$a = 1; $b = '$a'; echo $b; //$a $a = 1; $b = "$a"; echo $b; //1 $a = 1; $b = "'$a'"; echo $b; //'1'
Если вы хотите вывести HTML, вы можете использовать синтаксис heredoc . Это полезно при выдаче нескольких строк, содержащих переменные:
$name = "Bob"; $age = 59; echo <<<EOT My name is "$name". I am $age years old. EOT; //My name is "Bob" //I am 59 years old.