PHP $ string {0}与$ string [0];

时间:2008-12-02 19:50:45

标签: php string

在PHP中,您可以通过几种不同的方式访问字符串的字符,其中一种是substr()。您还可以使用大括号或方括号访问字符串中的第N个字符,如下所示:

$string = 'hello';

echo $string{0}; // h
echo $string[0]; // h

我的问题是,一方面有什么好处? {}和[]之间有什么区别?

感谢。

3 个答案:

答案 0 :(得分:38)

使用$string[0],其他方法(大括号)在PHP6中被弃用(src

  

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

答案 1 :(得分:20)

There is no difference.欧文的答案已经过时,最新版本的PHP手册不再声明它已被弃用§

  

可以通过指定来访问和修改字符串中的字符   字符串使用后所需字符的从零开始的偏移量   方括号括号,如$str[42]中所示。 将字符串视为数组   用于此目的的字符。 [...]

     

注意:也可以使用大括号访问字符串,如$str{42}中所示   同样的目的

然而,似乎有更多人/项目使用[],而且许多人甚至不知道{}是可能的。如果您需要公开或与不了解大括号语法的人分享您的代码,可能对使用[]有益。

更新:不推荐使用{}访问字符串字符,而是使用[]

答案 2 :(得分:2)

是的,没有区别。这种语言怪癖有一些历史......

最初,大括号语法旨在替换将被弃用的方括号语法:

http://web.archive.org/web/20010614144731/http://www.php.net/manual/en/language.types.string.php#language.types.string.substr

后来该政策被撤销,而方括号语法则是首选:

http://web.archive.org/web/20060702080821/http://php.net/manual/en/language.types.string.php#language.types.string.substr

甚至更晚,大括号中的一个将被弃用:

http://web.archive.org/web/20080612153808/http://www.php.net/manual/en/language.types.string.php#language.types.string.substr

在撰写本文时,似乎已经撤消了弃用,它们只被视为两种替代语法:

http://web.archive.org/web/20160607224929/http://php.net/manual/en/language.types.string.php#language.types.string.substr