PHP

Fatal error: Uncaught TypeError: Cannot access offset of type string on string

字号+ 编辑: 国内TP粉 修订: 种花家 来源: 2023-09-12 我要说两句(0)

笔者在使用swoole task处理任务通讯信息接口时因为中途忘记注意某段发出的消息类型, 引起了这个错误。

这个段英文报错原文:

Cannot access offset of type string on string

因为英文鸟语的天生缺陷, 表达个破事句子都比较长, 先白话翻译过来, 意思是: 在字符串类型场景中用了字符串偏移量来从中取值。

用咱人话来说就是字符串被当成数组处理报错啦!

6828f5cc342e8272100374c0e09ee6a5.jpeg

用代码案例解释一下这个迷惑行为吧。

假如你写了这段php代码并执行它:

$string_sample = 'abcde';
var_dump($string_sample['string_offset']);

就会报同样的错误。

相信没有人会用这种方式去截取字符串,一般我们写字符串下标都是用来应付数组的。如何避免这种BUG发生?就拿上个例子看, 在复杂业务逻辑里,不妨先确定一下$string_sample的数据类型。

if(is_array($string_sample)) {
    var_dump($string_sample['xxx']);
} else {
    var_dump($string_sample);
}


阅完此文,您的感想如何?
  • 有用

    1

  • 没用

    0

  • 开心

    1

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • mac开发接入微信公众号接口返回报错 cURL error 56: SSLRead() return error -9806

  • pecl安装程序时报错Array and string offset access syntax with curly braces is no longer supported

  • PHP的换行符是什么

  • 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决

我要说说
网上宾友点评