CodeSky 代码之空

随手记录自己的学习过程

PHP 语法糖一枚

2014-01-25 19:09分类: PHP评论: 0

又是刷题目刷到的,真是一个悲伤的故事。

1<?php
2$s = '12345 ';
3$s[$s[1]] = '234 ';
4echo $s;
5?>
6

输出是什么呢,很奇怪吧,明明不是数组。 其实在字符串中这么表示意思就是第n - 1个字符。 比如$s[1]截取的就是2,当然这里只接受length = 1的字符,而不接受字符串,所以第二步只是将3替换为了2,而没有把字符串替换进去。

*length = 1*代表 截取一个字节,所以对于中文不适用,关于中文的字节数,见PHP utf-8下strlen()小结

扩展阅读:http://www.php.net/manual/zh/language.types.string.php#language.types.string.substr

字符串原型大概指的是:$str = 'abc'[1] 差不多这个意思吧

评论 (0)