【发布时间】:2017-02-04 20:37:33
【问题描述】:
如http://php.net/manual/en/language.types.array.php 所述
注意:从 PHP 7.1.0 开始,对字符串应用空索引运算符会引发致命错误。以前,字符串被静默转换为数组。
谁能告诉我这个例子是什么意思?
它将如何影响我的代码?
谢谢!
【问题讨论】:
标签: php arrays string error-handling
如http://php.net/manual/en/language.types.array.php 所述
注意:从 PHP 7.1.0 开始,对字符串应用空索引运算符会引发致命错误。以前,字符串被静默转换为数组。
谁能告诉我这个例子是什么意思?
它将如何影响我的代码?
谢谢!
【问题讨论】:
标签: php arrays string error-handling
在 PHP
$var = 'somestring';
$var[] = 'a'; # yields array with two elements ['somestring', 'a']
在 PHP >= 7.1 中,这会产生
致命错误:未捕获的错误:字符串不支持 [] 运算符
【讨论】:
文档中的措辞有点奇怪,但 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 版本,字符串会以静默方式转换为数组,而不会发出任何警告或错误。
我希望这可以消除您的疑问。
【讨论】: