7

在以下几行中,我收到错误“发生字符串偏移量转换”

$code[$value['dictionaryAlias']] = $value['dictionaryText'][$codeLang];

$code[$value['dictionaryAlias']] = $value['dictionaryText'][$langDefault];

实际上,代码访问一个表。它适用于以前的版本,但不适用于 5.4

我是新手,我负责转换代码。我应该进行哪些更改才能使其正常工作。我读到这可能是因为变量是字符串而不是数组。那我能做什么?

4

1 回答 1

14

这意味着 that$value['dictionaryText']是一个字符串,并且要么不是整数,$codeLang要么$langDefault不是整数。索引运算符适用于字符串,但只接受整数索引:当它接收到其他内容时,它会尝试将其转换为整数,最常见的结果是值 0,并返回该索引处的字符。

这是他们在 5.4 中引入的一个新警告,因为这是一个常见的错误并且经常引起头痛。

于 2013-05-22T17:31:27.457 回答