考虑一下代码:
$a = "foobar";
echo $a{3}; // prints b
Run Code Online (Sandbox Code Playgroud)
我知道$a[3]是'b',但怎么来使用{}代替[]produec同样的结果?
编辑这个主题可能会让你感兴趣:"丢大括号"
它只是一种替代语法; 这两个表单编译为完全相同的字节码:
<?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