php 中用方括号[] 和 用大括号{} 对数组索引的区别?

发布于 2022-08-23 16:49:02 字数 258 浏览 13 评论 3

发现在php中用 [] 和 {} 都可以对数组进行索引,如

<?php
$arr = array("a","b","c");
echo $arr{1};
echo $arr{2};

输出:

bc

在看 php 代码时数组都是通过 [] 进行索引的,但是有时也会用 {}

现在有些不解的是用 {} 对数组索引有什么特定的意义吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

栩栩如生 2022-08-27 13:43:09
<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>
唱一曲作罢 2022-08-27 10:51:03

以下仅仅是我的猜测,因为用花括号来取元素的这个做法最早是出现在取字符串的某个字符时用到,这也是在官方文档里唯一发现的对花括号取元素的描述 http://www.php.net/manual/en/language...

那么php为什么会允许用花括号在字符串里取字符呢,这我也不知道?也许是为了兼容某种奇怪的语法,也许是某个开发者心血来潮给支持了,也许是某些历史原因,反正它就在那里了,这门语言充满了各种难以解释的特性,你得习惯。

我们知道在php里字符串其实跟数组在访问方法上是一致的,因此有人就会试试既然字符串可以用花括号取,那么数组可不可以呢?结果一试还真可以,因此黑客们为了秀一下自己的发现,就会在程序中使用这种非正式的写法。

而不明所以者,以为这么写会给程序赋予某种神奇的力量(这很正常,每个人都有过这种时候。因为这种写法看起来挺酷的,而且它很冷僻,好东西总是不为所知的,也许它有性能的提高?管它呢,先写着)。

其实它们的作用是完全一样,而且我建议你一直使用方括号来访问数组,因为说不定哪天某人偷偷就把这个特性给干掉了:)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文