PHP-为什么仍然解析double中的单引号变量

PHP-为什么仍然解析double中的单引号变量,php,string,quotes,Php,String,Quotes,通常,当PHP中的变量用单引号括起来时,它们被视为字符串,即 echo '$variable'; 将在屏幕上实际回显单词$variable 那么为什么要解析这个字符串呢 echo "'$variable'"; 该代码实际上会回显变量的值。为什么呢?它仍然在单引号中,为什么它仍然被解析?因为它也在双引号中。最外层的引号表示字符串的类型。字符串用双引号括起来——单引号是字符串内容的一部分,而不是字符串分隔符的一部分。因此,单引号没有任何语义意义 您的问题表明您可能对字符串有根本性的误解。这没关系

通常,当PHP中的变量用单引号括起来时,它们被视为字符串,即

echo '$variable';
将在屏幕上实际回显单词$variable

那么为什么要解析这个字符串呢

echo "'$variable'";

该代码实际上会回显变量的值。为什么呢?它仍然在单引号中,为什么它仍然被解析?

因为它也在双引号中。最外层的引号表示字符串的类型。

字符串用双引号括起来——单引号是字符串内容的一部分,而不是字符串分隔符的一部分。因此,单引号没有任何语义意义


您的问题表明您可能对字符串有根本性的误解。这没关系!字符串是令人惊讶的复杂实体,如果您学习像C这样的低级语言,它只会变得更复杂。我建议您花一些时间阅读字符串的一般内容以及PHP中的内容。对于这项任务,几次快速的谷歌搜索确实比一个精心策划的列表要好。

它只是一个包含两个单引号字符的双引号字符串。一旦它们位于双引号中,它们对解析器就没有任何意义。

因为单引号位于双引号中。双引号内的任何内容都将被计算。因此,您的echo语句被传递到一个双引号内的字符串

对该字符串求值,然后输出。它包含单引号和一个变量

请尝试以下方法:

<?php
    $var = 10;
    echo '"$var"';
?>

单引号被解释为字符串的一部分,而不是被解析代码的一个方面。如果要转义并显示变量名,请使用
“\$variable”
,在此处转义
$