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.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是什麽

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評