简体   繁体   English

无法将类型为stdClass的对象用作数组

[英]Cannot use object of type stdClass as array

All, I'm using a function like this: 所有,我正在使用这样的函数:

function themeblvd_twitter_slider_default( $tweet, $options, $username ) {
    echo $tweet[0]->text;
}

The line in the function is giving me the following error: Fatal error: Cannot use object of type stdClass as array 函数中的行给我以下错误:致命错误:不能将stdClass类型的对象用作数组

When I do a print_r on $tweet I get the following output: 当我在$ tweet上执行print_r时,得到以下输出:

object(stdClass)#70 (19) {
  ["in_reply_to_screen_name"]=>
  NULL
  ["in_reply_to_user_id"]=>
  NULL
  ["in_reply_to_status_id"]=>
  NULL
  ["coordinates"]=>
  NULL
  ["retweeted"]=>
  bool(false)
  ["created_at"]=>
  string(30) "Mon Mar 12 16:54:05 +0000 2012"
  ["id_str"]=>
  string(18) "12345553333"
  ["truncated"]=>
  bool(false)
  ["user"]=>
  object(stdClass)#78 (38) {
    ["id"]=>
    int(522392463)
    ["profile_image_url_https"]=>
    string(73) "https://si0.twimg.com/profile_images/1891637329/turntable_dots_normal.jpg"
    ["contributors_enabled"]=>
    bool(false)
    ["profile_use_background_image"]=>
    bool(true)
    ["lang"]=>
    string(2) "en"
    ["id_str"]=>
    string(9) "522392463"
    ["default_profile_image"]=>
    bool(false)
    ["geo_enabled"]=>
    bool(false)
    ["profile_text_color"]=>
    string(6) "333333"
    ["is_translator"]=>
    bool(false)
    ["favourites_count"]=>
    int(0)
    ["location"]=>
    string(11) "Chicago, IL"
    ["time_zone"]=>
    NULL
    ["utc_offset"]=>
    NULL
    ["show_all_inline_media"]=>
    bool(false)
    ["profile_sidebar_border_color"]=>
    string(6) "C0DEED"
    ["name"]=>
    string(20) "name"
    ["protected"]=>
    bool(false)
    ["profile_background_image_url_https"]=>
    string(49) "https://si0.twimg.com/images/themes/theme1/bg.png"
    ["profile_background_tile"]=>
    bool(false)
    ["following"]=>
    NULL
    ["profile_sidebar_fill_color"]=>
    string(6) "DDEEF6"
    ["follow_request_sent"]=>
    NULL
    ["default_profile"]=>
    bool(true)
    ["statuses_count"]=>
    int(2)
    ["description"]=>
    string(56) "Description"
    ["notifications"]=>
    NULL
    ["verified"]=>
    bool(false)
    ["profile_background_color"]=>
    string(6) "C0DEED"
    ["listed_count"]=>
    int(0)
    ["profile_image_url"]=>
    string(71) "http://a0.twimg.com/profile_images/1891637329/turntable_dots_normal.jpg"
    ["profile_background_image_url"]=>
    string(47) "http://a0.twimg.com/images/themes/theme1/bg.png"
    ["followers_count"]=>
    int(3)
    ["url"]=>
    string(28) "http://www.website.com"
    ["friends_count"]=>
    int(9)
    ["created_at"]=>
    string(30) "Mon Mar 12 16:38:11 +0000 2012"
    ["profile_link_color"]=>
    string(6) "0084B4"
    ["screen_name"]=>
    string(10) "Username"
  }
  ["in_reply_to_status_id_str"]=>
  NULL
  ["geo"]=>
  NULL
  ["retweet_count"]=>
  int(0)
  ["favorited"]=>
  bool(false)
  ["place"]=>
  NULL
  ["source"]=>
  string(3) "web"
  ["in_reply_to_user_id_str"]=>
  NULL
  ["contributors"]=>
  NULL
  ["id"]=>
  float(1.7924891374269E+17)
  ["text"]=>
  string(140) "This is the tweet"
}

How can I access the text without getting the error? 如何在不出现错误的情况下访问文本?

Thanks! 谢谢!

The error means exactly what it is, $tweet is not an array, thus it makes no sense trying to get its 0th index. 该错误表示它的确切含义, $tweet不是数组,因此尝试获取其第0个索引没有任何意义。

$tweet->text should just be fine :) $tweet->text应该就可以了:)

If you make sure $tweet is an array of tweet informations: 如果您确保$ tweet是一系列tweet信息:

foreach($tweet as $t) {
   echo $t->text;
}

最简单的方法是将$tweet为数组:

$tweet = (array)$tweet;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM