在PHP中,您可以通过几种不同的方式访问字符串的字符,其中一种是substr()。您还可以使用大括号或方括号访问字符串中的第N个字符,如下所示:
$string = 'hello';
echo $string{0}; // h
echo $string[0]; // h
我的问题是,一方面有什么好处? {}和[]之间有什么区别?
感谢。
答案 0 :(得分:38)
使用$string[0]
,其他方法(大括号)在PHP6中被弃用(src)
注意:为了相同的目的,也可以使用大括号访问字符串,如$ str {42}。但是,从PHP 6开始,不推荐使用此语法。请改用方括号。
答案 1 :(得分:20)
There is no difference.欧文的答案已经过时,最新版本的PHP手册不再声明它已被弃用§:
可以通过指定来访问和修改字符串中的字符 字符串使用后所需字符的从零开始的偏移量 方括号括号,如
$str[42]
中所示。 将字符串视为数组 用于此目的的字符。 [...]注意:也可以使用大括号访问字符串,如
$str{42}
,中所示 同样的目的。
然而,似乎有更多人/项目使用[]
,而且许多人甚至不知道{}
是可能的。如果您需要公开或与不了解大括号语法的人分享您的代码,可能对使用[]
有益。
更新:不推荐使用{}
访问字符串字符,而是使用[]
。
答案 2 :(得分:2)
是的,没有区别。这种语言怪癖有一些历史......
最初,大括号语法旨在替换将被弃用的方括号语法:
后来该政策被撤销,而方括号语法则是首选:
甚至更晚,大括号中的一个将被弃用:
在撰写本文时,似乎已经撤消了弃用,它们只被视为两种替代语法: