0

双引号--->"$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>';

希望我清楚。

更新:

我得到了想要的结果,但我不知道它背后的逻辑。我已经尝试过并且成功地做到了,但我想知道幕后发生了什么。我认为人们误解了我的问题。

4

6 回答 6

1

字符串的使用'"仅在它们是整个字符串的外部容器时才会发生变化 - 内部的不同引号仅被视为没有特殊含义的普通字符,因此"'$var'"使用"(解析变量)的规则,而'"$var"'实际上会输出"$var"因为它使用'(不解析变量)的规则。

摘要: 当您这样做"''""\"\""字符串中的引号未被 PHP 解析并被视为文字字符时,此类引号的内容将在这些引号内或外具有相同的行为。

于 2013-08-21T12:53:38.117 回答
0

您的“错误”(第一个)字符串缺少单引号 '

echo "<option value='".$item['m_designation']."'>".$item['m_designation']."</option>";
                    ^                          ^
于 2013-08-21T12:51:37.720 回答
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
于 2013-08-21T12:52:31.467 回答
0

您将拥有一个使用双引号作为分隔符并使用单引号作为数据的字符串。定界符是决定如何处理字符串的重要部分。

于 2013-08-21T12:46:57.150 回答
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 语法。这在输出多于一行包含变量时很有用:

$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.
于 2013-08-21T12:47:25.633 回答
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

于 2013-08-21T12:49:32.783 回答