PHP 语法糖一枚
又是刷题目刷到的,真是一个悲伤的故事。
<?php
$s = '12345 ';
$s[$s[1]] = '234 ';
echo $s;
?>
输出是什么呢,很奇怪吧,明明不是数组。
其实在字符串中这么表示意思就是第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]
差不多这个意思吧