代码之家  ›  专栏  ›  技术社区  ›  Kausheel

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

  •  0
  • Kausheel  · 技术社区  · 12 年前

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

    echo '$variable';
    

    将在屏幕上实际回显单词$variable。

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

    echo "'$variable'";
    

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

    4 回复  |  直到 12 年前
        1
  •  1
  •   slifty    12 年前

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

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

        2
  •  0
  •   enhzflep    12 年前

    因为单引号在双引号内。双引号内的任何内容都会得到评估。因此,您的echo语句传递了一个双引号内的字符串。

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

    请尝试以下操作:

    <?php
        $var = 10;
        echo '"$var"';
    ?>
    
        3
  •  0
  •   Major Productions    12 年前

    因为它也有双引号。最外层的引号表示它是哪种字符串。

        4
  •  0
  •   jimp    12 年前

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