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

2022-08-30 12:55:03

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

$string = 'hello';

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

我的问题是,一个比另一个有好处吗?{} 和 [] 之间有什么区别?

谢谢。


答案 1

使用,其他方法(大括号)在 PHP 8.0 中已被删除。$string[0]

对于字符串

在 PHP 7.4 中,使用 {} 语法访问字符串文本中的字符已被弃用。这在 PHP 8.0 中已被删除。

对于数组

在 PHP 8.0.0 之前,方括号和大括号可以互换使用来访问数组元素(例如 $array[42] 和 $array{42}在上面的例子中都会做同样的事情)。大括号语法从 PHP 7.4.0 开始被弃用,并且从 PHP 8.0.0 开始不再受支持。


答案 2

没有区别。欧文的答案已经过时了,最新版本的PHP手册不再声明它被弃用了§

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

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

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

已更新 :已弃用 访问字符串字符,请改用。{}[]


推荐