关于 php 字符串的问题

2016-07-21 10:40:44 +08:00
 astome

试例 $str="abcdef"; echo $str[2];

result:是 c

这是一个字符串 为什么能用数组的形式打印出来

2403 次点击
所在节点    PHP
10 条回复
Patrick95
2016-07-21 10:42:46 +08:00
php 官方使用手册:

存取和修改字符串中的字符
字符串中的字符可以通过一个以 0 为开始的,用类似数组结构中的方括号包含对应的数字来查找和修改,比如 $str[42], 可以把 字符串想像数组 。
函数 substr() 和 substr_replace()可以用来实现多于一个字符的情况。

Note:
字符串为了同样的目的也可以用花括号,比如 $str{42},但是, 在 PHP 5.3.0 中不推荐使用这种格式,应该用方括号,就像 $str[42]。
astome
2016-07-21 10:50:08 +08:00
楼上解释很详细,感觉 php 跟 js 有点像,字符串也相当一个数组对象,能下数组的形式去获取相关数据
metowolf
2016-07-21 10:58:47 +08:00
和 C/C++ 类似,字符串就是字符数组(虽然不严谨
iyaozhen
2016-07-21 11:00:51 +08:00
好像大部分语言都这样吧,方便各种字符串操作。
techmoe
2016-07-21 11:24:33 +08:00
index 是从 0 开始的
说白了:
abcdef
012345
chuhemiao
2016-07-21 11:47:47 +08:00
每个字符串都是一个无形中的数组
zsdroid
2016-07-21 14:55:56 +08:00
看上去很奇怪,但是至少很好用
zhouxuchen
2016-07-22 09:51:28 +08:00
忘记了被 C 语言支配的恐惧么(手动滑稽
kair
2016-07-22 14:51:02 +08:00
不知道楼主有木有接触过 C
string 类型在 C 语言中的基础类型是不存在的
C 语言中有 char 类型
你可以简单理解为,一个字符串其实是多个 char 拼接起来的数组
最后, PHP 是 C 写的
astome
2016-07-29 15:39:42 +08:00
@kair 大神你很牛,我没有接触过 c 谢谢的解答 让我豁然开朗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/293867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX