PHP $string0 与 $string[0];
Posted
技术标签:
【中文标题】PHP $string0 与 $string[0];【英文标题】:PHP $string0 vs. $string[0];PHP $string0 与 $string[0]; 【发布时间】:2010-09-25 00:19:13 【问题描述】:在 php 中,您可以通过几种不同的方式访问字符串中的字符,其中之一是 substr()。您还可以使用大括号或方括号访问字符串中的第 N 个字符,如下所示:
$string = 'hello';
echo $string0; // h
echo $string[0]; // h
我的问题是,两者之间是否有优势? 和 [] 有什么区别?
谢谢。
【问题讨论】:
【参考方案1】:使用$string[0]
,另一种方法(大括号)在 PHP6 中被弃用(src)
注意:也可以使用大括号访问字符串,如 $str42,用于相同目的。但是,从 PHP 6 开始不推荐使用此语法。请改用方括号。
【讨论】:
是否也会删除使用 作为评估方法?例如 $$dynamic_object_name->doStuff() 不,我相信他们的目标是将字符串访问标准化为数组。 为了将来的参考,我想指出,关于卷曲语法被弃用的行已经从大约 3 年前的文档中删除,这意味着它不会很快被弃用,如果有的话. @Owen:PHP 还使用
进行数组访问。它总是这样。 (只是说)
被否决为 v.out of date。 PHP6 从未发生过。 Pacerier 的回答现在要准确得多。【参考方案2】:
There is no difference.Owen 的回答已经过时了,最新版本的 PHP 手册不再声明它已弃用 §:
字符串中的字符可以通过指定来访问和修改 使用字符串后所需字符的从零开始的偏移量 方数组括号,如
$str[42]
。 将字符串视为数组 为此目的的字符数。 [...]注意:字符串也可以使用大括号访问,如
$str42
,for 相同的目的。
然而,似乎更多的人/项目使用[]
,而且很多人甚至不知道 是可能的。如果您需要公开或与不了解花括号语法的人共享您的代码,可能使用
[]
会有所帮助。
更新:不推荐使用 访问字符串字符,请改用
[]
。
【讨论】:
我更喜欢花括号,因为它在视觉上清楚地表明我正在从字符串变量访问字符,而不是从数组中访问值。在某种程度上,这是一回事,但在代码级别,它使视觉效果更好。【参考方案3】:是的,没有区别。这种语言怪癖有一些历史......
最初,大括号语法旨在替换将被弃用的方括号语法:
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
【讨论】:
以上是关于PHP $string0 与 $string[0];的主要内容,如果未能解决你的问题,请参考以下文章