PHP 7.1 - 空索引运算符数组

时间:2017-02-04 20:37:33

标签: php arrays string error-handling

正如http://php.net/manual/en/language.types.array.php

所述
  

注意:从PHP 7.1.0开始,对字符串应用空索引运算符会引发致命错误。以前,字符串被静默转换为数组。

有人可以告诉我这个例子意味着什么?

它会如何影响我的代码?

谢谢!

2 个答案:

答案 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版本,字符串会以静默方式转换为数组,而不会发出任何警告或错误。

我希望这可以解除你的疑虑。