php中的单引号和双引号?

时间:2013-08-21 12:45:03

标签: php

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

希望我很清楚。

更新

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

6 个答案:

答案 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