2012-03-13 76 views
1

所有, 我使用这样的功能:不能使用类型为stdClass的对象作为数组

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

函数中的线是给我下面的错误: 致命错误:无法使用的对象键入stdClass的作为阵列

当我做$鸣叫我得到以下输出的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" 
} 

如何访问没有得到错误的文本?

谢谢!

+0

您正在调用不存在的'$ tweet [0]'... – Jon 2012-03-13 03:35:00

回答

4

这个错误的意思正是它是什么,$tweet不是一个数组,因此它试图获得它的第0个索引是没有意义的。

$tweet->text应该只是罚款:)

如果你确保$鸣叫是推特信息的数组:

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

如果我有更多的推文,那该怎么看? – user1048676 2012-03-13 03:35:54

+0

编辑了我的答案 – 2012-03-13 03:38:10

2

最简单方法是投$tweet作为数组:

$tweet = (array)$tweet; 
相关问题