jacob
V2EX  ›  PHP

php 字符串插值为何这么变态

  •  
  •   jacob · Oct 12, 2014 · 5636 views
    This topic created in 4404 days ago, the information mentioned may be changed or developed.

    难道在双引号里不需要告诉解释器:我要插入了。

    echo "$plug in";
    

    ruby
    ruby
    puts "#{plug} in"

    27 replies  •  2014-10-13 12:53:50 +08:00
    kankana
    kankana
    Oct 12, 2014
    1
    echo "{$plug} in";

    echo "${plug} in";

    要不你用这个吧
    jacob
    jacob
    OP
    Oct 12, 2014
    2
    @kankana 我感觉我发了个很愚蠢的帖子
    jacob
    jacob
    OP
    Oct 12, 2014
    3
    我很想删了- -||
    xoxo
    xoxo
    Oct 12, 2014❤️1
    4
    撸主刚学PHP吧,PHP是世界上最好的语言
    kankana
    kankana
    Oct 12, 2014
    5
    @xoxo 哈哈, 你这是要挑起战争啊
    rming
    rming
    Oct 12, 2014
    6
    @xoxo PHP大法好
    LINAICAI
    LINAICAI
    Oct 12, 2014
    7
    php单双引号简直让人不忍直视~
    regmach
    regmach
    Oct 12, 2014
    8
    @xoxo
    我不管PHP好不好,我就知道其他的我学! 不!! 会!!!
    rming
    rming
    Oct 12, 2014
    9
    @LINAICAI 知道我看到了Python的三引号 = =!
    icanfork
    icanfork
    Oct 12, 2014
    10
    嗤~
    qiayue
    qiayue
    Oct 12, 2014
    11
    因为 PHP 变量前有 “$” 所以不需要其他标识就能够知道哪些是变量名。
    然后 PHP 会解析双引号里边变量。
    Jaylee
    Jaylee
    Oct 12, 2014
    12
    撸主刚学PHP吧,PHP是世界上最好的语言
    14
    14
    Oct 12, 2014
    13
    想到php最初是Personal Home Page,作者写简历用的,也就理解了。。。
    lazyphp
    lazyphp
    Oct 12, 2014
    14
    扩展贴:php 的 $符号好奇葩。
    ichou
    ichou
    Oct 12, 2014
    15
    而且我告诉你 露珠
    php 的双引号无论不插不插值 执行效率都比单引号低 所以推荐使用单引号
    想想那通篇有插值用双引号 没插值用单引号的文本 给强迫症看真是爽歪歪啊
    zts1993
    zts1993
    Oct 12, 2014
    16
    echo "$plug in";

    如果替换变量应该这样写。
    echo '$plug in';
    如果非要用双引号
    echo "\$plug in";
    lincanbin
    lincanbin
    Oct 12, 2014
    17
    PHP官方文档里都写了,推荐使用单引号,需要变量再拼接。
    kslr
    kslr
    Oct 12, 2014
    18
    那优化到最后就是:echo $plug.'in';

    楼主,你的;是中文的!
    yemoluo
    yemoluo
    Oct 12, 2014
    19
    @ichou 因为插不插入,它都要试图查找和解析一下里面的$符号.
    weegc
    weegc
    Oct 12, 2014
    20
    单引号是单纯的字符串 php不解析里面的变量之类的东东
    双引号里面的变量 php会去解析
    spacewander
    spacewander
    Oct 12, 2014❤️1
    21
    lz的PHP代码:
    echo "$plug in";
    拿到shell上也能正确运行……

    不客气的结论:lz有点少见多怪了。
    iyaozhen
    iyaozhen
    Oct 13, 2014
    22
    @ichou php的单引号和双引号目前效率都差不多,反而字符串拼接会影响性能。
    http://www.phpbench.com/
    iyaozhen
    iyaozhen
    Oct 13, 2014
    23
    @lincanbin php官方文档有说推荐单引号吗?目前的php版本两者效率相当http://www.phpbench.com/。
    konakona
    konakona
    Oct 13, 2014
    24
    双引号代表转义,单引号代表不转义。
    两者之间只有微妙的效率差异,即便在大项目中也不会有任何影响,纯粹是个人喜好的问题。

    然而php在变量这一块的写法是多姿多彩的……
    kankana
    kankana
    Oct 13, 2014
    25
    @iyaozhen

    单引号和双引号的效率, micro optimization挺无聊的说
    iyaozhen
    iyaozhen
    Oct 13, 2014
    26
    @kankana
    嗯,还是喜欢使用C语言的习惯,字符用单引号,字符串用双引号。字符串里面插值用"str{$var}str"。
    jacob
    jacob
    OP
    Oct 13, 2014
    27
    @kslr 嘿嘿,还有点不习惯写分好了,经常忘掉。
    @14 有点像:当我有什么想不通的时候,一想到我“用的是php”(在天朝)就都通了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1299 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.