【发布时间】:2010-09-25 00:19:13
【问题描述】:
在 PHP 中,您可以通过几种不同的方式访问字符串中的字符,其中之一是 substr()。您还可以使用大括号或方括号访问字符串中的第 N 个字符,如下所示:
$string = 'hello';
echo $string{0}; // h
echo $string[0]; // h
我的问题是,两者之间是否有优势? {} 和 [] 有什么区别?
谢谢。
【问题讨论】:
在 PHP 中,您可以通过几种不同的方式访问字符串中的字符,其中之一是 substr()。您还可以使用大括号或方括号访问字符串中的第 N 个字符,如下所示:
$string = 'hello';
echo $string{0}; // h
echo $string[0]; // h
我的问题是,两者之间是否有优势? {} 和 [] 有什么区别?
谢谢。
【问题讨论】:
使用$string[0],另一种方法(大括号)在 PHP6 中被弃用(src)
注意:也可以使用大括号访问字符串,如 $str{42},用于相同目的。但是,从 PHP 6 开始不推荐使用此语法。请改用方括号。
【讨论】:
{} 进行数组访问。它总是这样。 (只是说)
There is no difference.Owen 的回答已经过时了,最新版本的 PHP 手册不再声明它已弃用 §:
字符串中的字符可以通过指定来访问和修改 使用字符串后所需字符的从零开始的偏移量 方数组括号,如
$str[42]。 将字符串视为数组 为此目的的字符数。 [...]注意:字符串也可以使用大括号访问,如
$str{42},for 相同的目的。
然而,似乎更多的人/项目使用[],而且很多人甚至不知道{} 是可能的。如果您需要公开或与不了解花括号语法的人共享您的代码,可能使用[] 会有所帮助。
更新:不推荐使用{} 访问字符串字符,请改用[]。
【讨论】:
是的,没有区别。这种语言怪癖有一些历史......
最初,大括号语法旨在替换将被弃用的方括号语法:
后来该政策被颠倒过来,改用方括号语法:
甚至后来,花括号将被弃用:
在撰写本文时,弃用似乎也已被撤回,它们仅被视为两种替代语法:
【讨论】: