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

这个php语法是什么意思?

  •  6
  • Zacky112  · 技术社区  · 15 年前

    考虑一下代码:

    $a = "foobar";
    echo $a{3}; // prints b
    

    我知道 $a[3] 'b' 但是为什么要用 {} 代替 [] 产生同样的结果吗?

    4 回复  |  直到 15 年前
        1
  •  10
  •   silent    15 年前

    你可以阅读 here in official documentation 关于大括号:

    字符串也可以使用 括号,如$STR { 42 },用于相同 目的。但是,这个语法是 自PHP5.3.0起,已弃用。使用正方形 取而代之的是括号,比如$str[42]。

        2
  •  6
  •   Artefacto    15 年前

    编辑 您可能会感兴趣: "dropping curly braces"

    这只是另一种语法;这两种形式编译成完全相同的字节码:

    <?php
    $str = "aaab";
    echo $str{3}; 
    echo $str[3]; 
    
    number of ops:  9
    compiled vars:  !0 = $str
    line     # *  op                           fetch          ext  return  operands
    ---------------------------------------------------------------------------------
       2     0  >   EXT_STMT                                                 
             1      ASSIGN                                                   !0, 'aaab'
       3     2      EXT_STMT                                                 
             3      FETCH_DIM_R                                      $1      !0, 3
             4      ECHO                                                     $1
       4     5      EXT_STMT                                                 
             6      FETCH_DIM_R                                      $2      !0, 3
             7      ECHO                                                     $2
             8    > RETURN                                                   1
    
        3
  •  5
  •   Macmade    15 年前

    这是一样的,但是 {} 从php 5.3开始,语法已被弃用。

        4
  •  0
  •   Sergey Eremin    15 年前

    {}和[]是相同的。使用什么是你的选择。[]更常见。

    推荐文章