PHP ‘Array and string offset access syntax with curly braces is deprecated’ 错误的原因和解决办法

今天老王在将一个用 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;
赞(0)
关注我们
未经允许不得转载:老王博客 » PHP ‘Array and string offset access syntax with curly braces is deprecated’ 错误的原因和解决办法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址