这个PHP语法是什么意思?

Zac*_*112 6 php syntax

考虑一下代码:

$a = "foobar";
echo $a{3}; // prints b
Run Code Online (Sandbox Code Playgroud)

我知道$a[3]'b',但怎么来使用{}代替[]produec同样的结果?

sil*_*ent 10

您可以在官方文档中阅读有关大括号的内容:

为了相同的目的,也可以使用大括号访问字符串,如$ str {42}.但是,从PHP 5.3.0开始,不推荐使用此语法.请改用方括号,例如$ str [42].


Art*_*cto 6

编辑这个主题可能会让你感兴趣:"丢大括号"

它只是一种替代语法; 这两个表单编译为完全相同的字节码:

<?php
$str = "aaab";
echo $str{3}; 
echo $str[3]; 
Run Code Online (Sandbox Code Playgroud)
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


Mac*_*ade 5

它是相同的,但从{}PHP 5.3开始不推荐使用该语法.


Ser*_*min 0

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