双引号--->“$ a”解释变量。
单引号--->'$ a'不行。直到现在
MyQuestion:
"'$a'"
怎么办?注意:想了解幕后细节。
详细说明:
当我在foreach循环中使用它时,我遇到了一个重大问题:
以下示例给出了错误的选项值。例如,如果原始版本是UX开发人员,那么它呈现的值就是用户体验
echo "<option value=".$item['m_designation'].">".$item['m_designation']."</option>";
这个例子给了我正确的选项值。例如,如果原始版本是UX开发人员,则它呈现的值是UX开发人员
echo '<option value="'.$item['m_designation'].'"> '.$item['m_designation'].' </option>';
希望我很清楚。
更新
我得到了理想的结果,但我不知道它背后的逻辑。我已经尝试过并成功完成了,但我想知道幕后发生了什么。我想人们误解了我的问题。
答案 0 :(得分:1)
'
和"
对字符串的使用只有在它们是整个字符串的外部容器时才会改变 - 内部的不同引用只是被视为没有特殊含义的普通字符,因此"'$var'"
使用"
(解析变量)的规则,而'"$var"'
会输出"$var"
,因为它使用'
的规则(不解析变量)
<强>要点:强>
当您执行"''"
或"\"\""
时,字符串中的引号不会被PHP解析并视为文字字符,此类引号的内容将在这些引号中具有相同的行为。
答案 1 :(得分:0)
你将有一个字符串,它使用双引号作为分隔符,并使用单引号作为数据。分隔符是确定如何处理字符串的重要分隔符。
答案 2 :(得分:0)
看来你的问题更多的是针对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 syntax。当输出包含变量的多行时,这非常有用:
$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.
答案 3 :(得分:0)
$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 'foo $a 123';//prints foo $a 123
答案 4 :(得分:0)
您的'错误'(第一个)字符串缺少单引号 '
:
echo "<option value='".$item['m_designation']."'>".$item['m_designation']."</option>";
^ ^
答案 5 :(得分:0)
您的问题是您将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