PHP 语法糖一枚
又是刷题目刷到的,真是一个悲伤的故事。
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)