PHP7中字符的反向索引是如何实现的

虽然不言不语
  • 8
$str = "LVIII";
echo $str[-1];

php5.6中输出 Notice: Uninitialized string offset: -1
php7.1中输出 I

哪位大神可以解答一下,造成两者区别的根本原因,以及PHP7中的字符串是如何支持反向索引的,是通过zval中的len + (负数索引) = 正序索引然后查找动态数组val[],还是其他机制?

回复
阅读 1.1k
2 个回答

实际上这个功能是7.1新增的:

Added support for negative string offsets in string offset syntax and various string functions.

增加了负数索引的支持。
具体想知道如何实现的只能看源码了。

没空看源码,估计直接判断长度计算的

宣传栏