正如http://php.net/manual/en/language.types.array.php
所述注意:从PHP 7.1.0开始,对字符串应用空索引运算符会引发致命错误。以前,字符串被静默转换为数组。
有人可以告诉我这个例子意味着什么?
它会如何影响我的代码?
谢谢!
答案 0 :(得分:3)
在PHP< 7.1:
$var = 'somestring';
$var[] = 'a'; # yields array with two elements ['somestring', 'a']
在PHP> = 7.1中,这会产生
致命错误:未捕获错误:字符串不支持[]运算符
答案 1 :(得分:0)
文档中的措辞有点奇怪,但7.1中的变化是当你有一个空字符串然后以这种方式访问它时:3v4l.org/V5YJa
看看下面的代码:
<?php
$rootbeer = '';
$rootbeer[] = 'T';
?>
使用PHP 7.1.0输出:
Fatal error: Uncaught Error: [] operator not supported for strings in your_file.php:4
Stack trace:
#0 {main}
thrown in your_file.php on line 4
在 PHP 7.0.1 之前使用 PHP版本,字符串会以静默方式转换为数组,而不会发出任何警告或错误。
我希望这可以解除你的疑虑。