Consider the code:
$a = "foobar";
echo $a{3}; // prints b
我知道$a[3]
是'b'
,但为什么使用{}
代替[]
会产生相同的结果?
关于大括号的使用,可以在官方文档中了解:
也可以使用大括号来访问字符串,例如 $str{42},用于同样的目的。然而,此语法自PHP 5.3.0版本起已被弃用。请改用方括号,例如 $str[42]。
编辑 这个主题可能对你有兴趣:“去掉花括号”
这只是一种替代语法;这两种形式编译成完全相同的字节码:
<?php
$str = "aaab";
echo $str{3};
echo $str[3];
虽然意思相同,但是PHP 5.3版本已经不再使用{}
语法。
{} 和 [] 是一样的。你可以自己选择使用哪个。不过,[] 更常用。
{}
而不是[]
进行访问。曾经,建议使用[]
访问数组和{}
访问字符串。现在,推荐使用[]
。 - Artefacto