目录
隐藏
今天老王在将一个用 ThinkPHP 搭建的网站迁移到新服务器上时,出现了“Array and string offset access syntax with curly braces is deprecated”的错误,查了下是因为 PHP 7.4 更新的原因,下面分享下错误原因和解决方法。
一、错误原因
其实从错误信息里就看出错误原因了:Array and string offset access syntax with curly braces is deprecated,这是 PHP 7.4 版本的更新,从 7.4 后,只能使用 $value[0] 的方式来获取字符串偏移,$value{0} 已经被弃用。
ThinkPHP 报错的原因是在 thinkphp\library\think\db\Query.php
的 568 行有一段代码用了 $value{0} 的方式:
$seq = (ord($value{0}) % $rule['num']) + 1;
二、错误解决方法
解决方法也很简单,将 $value{0} 改成 $value[0] 就行了:
$seq = (ord($value[0]) % $rule['num']) + 1;